先来复习下ES5中的数组遍历
- for forEach
// for
let arr = [1, 2, 3];
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
// forEach
// 第一个参数:正在遍历的对象
// 第二个参数:当前索引
// 第三个参数:数组本身
arr.forEach(function(elem,index,array) {
console.log(elem,index,array)
})
-----------------------
1 0 (3) [1, 2, 3]
2 1 (3) [1, 2, 3]
3 2 (3) [1, 2, 3]
普通的for循环和forEach间的差别:
forEach循环中不可以使用break continue关键字,也就是说,循环开始后就无法停止
- 数组的map循环
let newarr = arr.map(function(value) {
// /console.log(value);
return value+1;
})
console.log(arr,newarr)
--------------------
[1,2,3] [2,3,4]
map和forEach的区别:
forEach只是简单的循环,map循环会遍历数据里的每一个元素,将返回值生成新的一个数组
- 数组的filter循环
let newarr = arr.filter(function(value) {
return value == 2 // 过滤条件
})
console.log(arr,newarr)
---------------------------------
[1,2,3] [2] // [2]就是过滤后的新数组
与map的区别是:
首先同样会生成新的数组,但是filter会根据return xx=xx设置过滤条件,将过滤后结果装入新的数组