JavaScript 迭代器函数
1、Every 与 Some 方法
Every 方法会迭代数组中的每个元素,直到返回false。如:
let arr1 = [1,2,3,4,5,6,7,8,9,10,11];
const fn = x => x % 2 === 0;
arr1.every(fn);
在这个例子里,arr1的第一个元素是1,它无法余2为0的(因为1是奇数),因此 fn 函数返回 false 后,every 执行结束。
同样的,我们用上个例子的数组使用Some 方法。
Some 方法与 Every 方法的效果相反,它会迭代数组的每个元素,直到函数返回true。如:
arr1.some(fn)
在这个例子里,arr1 第一个元素是1,fn函数返回false ,所以它就迭代到了第二个元素2。
又因为2能够余2为0,所以 fn函数返回 true,至此 some 方法执行完毕。
2、ForEach 方法
ForEach 方法会迭代数组中的每个元素,它与 for 循环的结果相同。
let arr = [1,2,3,4,5];
arr.forEach(item => console.log(item));
3、Map 与 Filter 方法
Map 方法会保存传入的函数的返回值(运行结果)。如:
const fn = x => x % 2 === 0;
let arr = [1,2,3,4,5,6];
const arr2 = arr.map(fn);
在这个例子里,fn 函数会根据你传入的值是否为 偶数来判定返回 true 或false。
又因 arr 第一个元素为奇数,fn 函数返回 false; 第二个元素为偶数,fn 函数返回 true; 第三个元素为…
所以最终 arr2的值为: [ false ,true ,false ,true ,false ,true ];
同样的,我们采用上个例子的函数与数组来使用 Filter 方法。
Filter 方法 返回的新数组由使用的函数返回 true 的元素组成。如:
const arr3 = arr.filter(fn);
所以arr3的结果为 : [2,4,6];
4、Reduce 方法
Reduce 方法会返回数组所有元素的和。
该方法可以接收四个参数,total,currentValue,currentIndex,arr。
let arr = [1,2,3,4,5,6];
arr.reduce((total,currentValue) => total + currentValue);
将输出 21。