ECMA5新增了7个数组方法,于此做整理复习:
1. indexOf()
【功能】查找数组中指定元素所在的索引
【格式】数组.indexOf(元素,index);(其中index参数可选,表示从该索引位置向后开始查找)
var arr=[20,30,40,50,60,30];
console.log(arr.indexOf(30)); //1
console.log(arr.indexOf(30,3)); //5
2. forEach()
【功能】遍历数组
【格式】数组.forEach(function(item, index, array){ });
【注】 item 当前遍历到的元素
index 当前遍历到的元素的下标
array 当前被遍历的数组
var arr2 = [10,20,30];
arr2.forEach(function(item, index, array){
console.log(item + " " + index + " " + array);
/*
10 0 10,20,30
20 1 10,20,30
30 2 10,20,30
*/
})
arr2.forEach(console.log);
/*
10 0 (3) [10, 20, 30]
20 1 (3) [10, 20, 30]
30 2 (3) [10, 20, 30]
*/
3. map()
【功能】数组映射 —— 以 遍历->操作->返回 的方式
【格式】数组.map(function(item, index, array){ return…; });
var arr3 = [20,30,40,50];
var newArray = arr.map(function(item, index, array){
return item + 2 ;
});
console.log(newArray);//(6) [22, 32, 42, 52, 62, 32]
4. reduce()
【功能】归并 —— 遍历数组的同时,对pre next两个参数进行归并相加处理
【格式】数组.reduce(function(pre,next, index, array){ return…; });
var arr4 = [10,20,30,40,50];
var newArray2 = arr4.reduce(function(pre, next, index, array){
/*
pre 上一次遍历return后面的值
next 当前遍历到的元素
*/
console.log(pre + "," + next);
/*
10,20
30,30
60,40
100,50
*/
return pre + next;
});
console.log(newArray2);//150
5. filter()
【功能】过滤 —— 通过return后面的表达式对整个数组进行筛选
【格式】数组.filter(function(item, index, array){ return…; });
var arr5 = [10,20,30,40,50];
var newArray3 = arr5.filter(function(item, index, array){
return item >30;//找出所有大于30的元素
});
console.log(newArray3);//(2) [40, 50]
6. some()
【功能】判断return后面的条件,在数组中的任一一个元素上是否成立,如果成立返回true,反之返回false
【格式】数组.some(function(item, index, array){ return…; });
【注】如果找到符合表达式条件的元素,则立刻返回true,并停止对数组的遍历
var arr6 = [10,20,30,40,50];
var newArray4 = arr6.some(function(item, index, array){
return item == 30;//判断数组中是否存在30
//判断return后面的表达式,在当前数组是否成立;
});
console.log(newArray4);//true
7. every()
【功能】和some()方法类似,但是要求数组每一项都符合return后边的表达式,那样返回true,只要有一项不符合就返回false
【格式】数组.every(function(item, index, array){ return…; });
【注】如果判断有元素不符合条件,返回false,直接终止遍历
var arr7 = [10,20,30,40,50];
var newArray5 = arr7.every(function(item, index, array){
return item > 5;//判断数组中是否存在30
});
console.log(newArray5);//true