一、初识数组
数组是一种复杂数据类型, 用于将一组数组集合在一起。
通过一个变量就可以访问一组数据。
数组之间通过逗号分隔
数组中的"索引/下标",是从0开始计算的。
// 声明数组
let class02= ["tom","lily","tony" ]
// 打印数组
console.log(class02);
// 打印数组长度
console.log(class02.length); //3
// 打印数组中下标为1的元素
console.log(class02[1]); //lily
// 数组可以是任意类型的元素,例如字符串,数字,数组。
let arr1 = [1,2,3,4,5,6]
let arr2 = ["string",NaN,undefined,null,arr1]
console.log(arr2);
二、创建数组
2.1:以new Array()方式创建数组
var arr = new Array();
console.log(arr); //Array(0)
var arr = new Array(5);
console.log(arr); //[empty*5]
arr = new Array("tom","tony","bob");
console.log(arr); //["tom","tony","bob"]
2.2: 使用数组字面量创建数组
var mood = ['sad','happy',,,,,'happy']
console.log(mood.length); //7
console.log(mood[6]); //happy
三、数组的基本操作
3.1:获取元素长度
console.log(数组名.lenght);
3.2:修改数组长度
// 数组名.length = number
var arr = [0,1,2,3]
console.log(arr.length); //4
arr.length = 5
console.log(arr); //[0,1,2,3,empty]
// 如果长度改为比之前短的长度,则将会砍掉多余数组元素
arr.length = 3
console.log(arr); //[0,1,2]
3.3:添加数组元素
arr[4] = 3
console.log(arr); // [0,1,2,empty,3]
3.4:修改数组元素
arr[0] = 1
console.log(arr); //[1,1,2,empty,3]
3.5:删除数组元素
// delete 数组名[index] 删除数组中的某个元素值
delete arr[1]
console.log(arr); //[1,empty,2,empty,3]
3.6:遍历数组
// 需求:得到数组的累加和
let arr1 = [10,20,30,40,50,60]
var sum = 0;
for(var i = 0; i < arr1.length ; i++){
sum += arr1[i]
}
console.log(sum); //210
3.7:新增数组元素
3.7.1:push在数组后添加元素
let arr3 = [1,2,3,4]
arr3.push(5,6)
console.log(arr3); //[1,2,3,4,5]
3.7.2:unshift在数组前添加元素
arr3.unshift(-2,-1,0)
console.log(arr3);//[-2,-1,0,1,2,3,4,5,6]
四、二维数组
4.1:二维数组指的是数组元素的值是一个一维数组
var arr = [80,100,75]
var arr1 = [
[80,100,75],
[90,67,66],
[99,87,85],
]
4.2: 访问二维数组
console.log(arr1[0]); //80,100,75
console.log(arr1[0][0]); //80
4.3:遍历二维数组arr1
for(var i=0;i<=arr1.length;i++){
for(var a=0; a<arr1[i].length;a++){
console.log(arr[i][a]);
}
console.log(arr1[i]);
}
4.4:二维数组倒置
var arr2=[
['a','b','c'],
['d','e','f'],
['g','h','i'],
['j','k','l'],
];
var res=[
[],
[],
[],
];
for(var a=0;a<arr2.length;a++){
for(var b=0;b<arr2[a].length;b++){
res[b][a]=arr2[a][b]
}
}
console.log(res);
五、数组迭代方法
5.1:map数组遍历器
map:利用某种规则映射得到一个新数组
表达式:
arr.map((元素,下标)=>{return 新元素})
如:
let res1 = arr.map(function(value,index){
// 回调函数中一定要return
return value + 1 //让每个元素加1
})
console.log(res1);
5.2:filter数组过滤器
filter:用于筛选数组中满足条件的元素,返回筛选后的新数组
表达式:
arr.filter((value,index)=>{筛选条件})
如:
let res1 = arr.filter((value,index)=>{
return value >10
})
console.log(res1);
5.3:forEach数组遍历
forEach:用于遍历数组,没有返回值,不需要return
表达式:
数组.forEach(function(vaule,index,arr){算法})
如:
let sum1=0
arr.forEach(function(value){
sum1 +=value
})
console.log(sum1);
5.4:semo
some用于判断数组元素是否符合条件,只要有一个元素符合函数体的判断条件,就返回true,如果没有一个元素符合函数体的判断条件,就返回false。
表达式:
let res = 数组.some((item,index)=>{条件})
如:
let res = arr.some((item,index)=>{
return item<0
})
console.log(res);
5.5:every
当全部元素满足条件,every的值为true,反值为false。
表达式:
let res = 数组.every((item)=>{条件})
如:
let res = arr.every((item)=>{
return item>0
})
console.log(res);
5.6:findIndex
findIndex用于返回第一个符合元素的下标
表达式:
let res = 数组.findIndex((item)=>{条件})
如:
let res = arr.findIndex((item)=>{
return item>0
})
console.log(res);
5.7:reduce
reduce用于求数组内的元素和。
表达式:
let res = 数组.reduce((item,index)=>item+index)
如:
let res = arr.reduce((item,index)=>item+index)
总概:
————来自微微老师