https://blog.csdn.net/weixin_45561258/article/details/107243689
一、forEach()循环数组
//ES5
var arr = [1,2,3,4,5];
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
- 1
- 2
- 3
- 4
- 5
//ES6
var arr = [1,2,3,4,5];
arr.forEach(function(item,index,arr){
console.log(item);
});
//ES6 forEach+箭头函数
var arr = [1, 2, 3, 4, 5];
arr.forEach((item,index,arr) => {
console.log(item) //结果为1,2,3,4,5
})
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
forEach方法中的function回调有三个参数:
第一个参数是遍历的数组内容,
第二个参数是对应的数组索引,
第三个参数是数组本身
二、map(),遍历数组,返回一个新数组,不改变原数组的值。
var arr = [1, 2, 3, 4, 5];
arr.map((item, index, arr) => {
return item * 10 //新数组为10,20,30,40,50
})
- 1
- 2
- 3
- 4
三、filter(),过滤数组,返回一个新的数组,不改变原始数组的值,过滤掉不符合条件的值
var arr = [1, 2, 3, 4, 5, 6];
arr.filter((item,index,arr) => {
return item > 4 //新数组为[5,6]
})
- 1
- 2
- 3
- 4
四、reduce(),计算数组,不改变原始数组,返回新的数组,让数组的前后两项进行某种计算。然后返回其值,并继续计算,从数组的第二项开始遍历
var arr = [1,2,3,4];
arr.reduce((result, num, index) => {
console.log(result) // 1 3 6 result为上次一计算的结果
console.log(num) // 2 3 4
console.log(index) // 1 2 3
return result + item //最终结果为10
})
- 1
- 2
- 3
- 4
- 5
- 6
- 7
五、some(), 遍历数组,不改变原始的数组,有一项返回true,则停止遍历,结果返回true
//有一项返回true,则停止遍历,结果返回true
var arr = [1, 2, 3, 4, 5];
arr.some((item,index,arr) => {
return item > 3 //结果为true
})
- 1
- 2
- 3
- 4
- 5
六、every(), 遍历数组,不改变原始的数组,有一项返回false,则停止遍历,结果返回false
//有一项返回false,则停止遍历,结果返回false
var arr = [1,2,3,4];
arr.every((item,index,arr) => {
return item > 1 //结果为false
})