先来复习下ES5中的数组遍历
// 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关键字,也就是说,循环开始后就无法停止
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循环会遍历数据里的每一个元素,将返回值生成新的一个数组
let newarr = arr.filter(function(value) { return value == 2 // 过滤条件 }) console.log(arr,newarr) --------------------------------- [1,2,3] [2] // [2]就是过滤后的新数组
与map的区别是:
首先同样会生成新的数组,但是filter会根据return xx=xx设置过滤条件,将过滤后结果装入新的数组