什么是数组?
数组对象是使用单独的变量名来存储一系列的值。
如果你有一组数据(例如:车名字),存在单独变量如下所示:
var car1="Saab";
var car2="Volvo";
var car3="BMW";
然而,如果你想从中找出某一辆车?并且不是3辆,而是300辆呢?这将不是一件容易的事!
最好的方法就是用数组。
数组可以用一个变量名存储所有的值,并且可以用变量名访问任何一个值。
数组中的每个元素都有自己的的下标,以便它可以很容易地被访问到。
创建一个数组
创建一个数组,有三种方法。
下面的代码定义了一个名为 myCars的数组对象:
- 常规方式:
var myCars=new Array(); myCars[0]="Saab"; myCars[1]="Volvo"; myCars[2]="BMW";
- 简洁方式:
var myCars=new Array("Saab","Volvo","BMW");
- 字面:
var myCars=["Saab","Volvo","BMW"];
访问数组
通过指定数组名以下标,你可以访问某个特定的元素。(注意下标是从0开始的)如
<script>
var arr = [10,20,30,40];
console.log(arr[0]) //表示在控制台输出数组第一个元素的值
//也可以通过下标更改元素的值
arr[0] = 50;
console.log(arr); //结果为[50,20,30,40];
</script>
在数组结尾处添加元素
可以通过数组的length属性来完成
<script>
var arr = [10,20,30,40,50];
console.log(arr);
arr[arr.length] = 60;
console.log(arr);
</script>
数组的去重
两种方法,都是通过遍历数组元素在判断,符合条件的存入新数组
方法一 需要先把数组排序在遍历判断
方法二 使用开关思想 如果假定的变量不符合条件就跳出,符合条件的存入新数组
var arr = [10,0,20,30,10,20,30];
var newArr = [];
console.log(arr);
//方法一 先排序在遍历然后把符合条件的放入新数组
//冒泡
for(var i = 0;i < arr.length-1;i++){
for(var j = 0;j < arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
console.log(arr);
//回调函数排序
// console.log(arr.sort(function(a,b){return a -b}));
//判断去重
// 1. 遍历数组
for(var i = 0;i < arr.length ;i++){
//判断
if(arr[i] != arr[i+1]){
newArr[newArr.length] = arr[i];
}
}
console.log(newArr);
//方法二 开关思想
//遍历原数组
for(var i = 0;i < arr.length;i++){
//假定开关状态
var flag = true;
//遍历新数组
for(var j = 0;j < newArr.length;j++){
//判断
if(arr[i] == arr[j]){
flag = false;
break;
}
}
if(flag){
newArr[newArr.length] = arr[i];
}
}
console.log(newArr);
数组的翻转 头部到尾部,尾部到头部
<script >
var arr = [10,20,30,40,50,60];
console.log(arr);
//方法一:定义新数组
var newArr = [];
for(var i = arr.length-1;i >= 0;i--){
newArr[newArr.length] = arr[i];
}
console.log(newArr);
//方法二 直接在原数组翻转
for(var i = 0;i < arr.length / 2;i++){
var temp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = temp;
}
console.log(arr);
</script>