1. forEach
forEach()
为每个数组元素执行一次 callback
函数;与 map() 或者 reduce() 不同的是,它总是返回 undefined 值,并且不可链式调用。
forEach()
被调用时,不会改变原数组,也就是调用它的数组(尽管 callback
函数在被调用时可能会改变原数组)。
除了抛出异常以外,没有办法中止或跳出 forEach()
循环。如果你需要中止或跳出循环,forEach()
方法不是应当使用的工具。
const array1 = ['a', 'b', 'c'];
array1.forEach(element => console.log(element));
2. map
创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
map
不修改调用它的原数组本身(当然可以在 callback
执行时改变原数组)
你不该使用map
: A)你不打算使用返回的新数组,或/且 B) 你没有从回调函数中返回值。
const array1 = [1, 4, 9, 16];
const map1 = array1.map(x => x * 2);
3. for...of / for...in
对于for...of
的循环,可以由break
, throw continue
或return
终止。在这些情况下,迭代器关闭。
for...of
语句遍历可迭代对象定义要迭代的数据。
const array1 = ['a', 'b', 'c'];
for (const element of array1) {
console.log(element);
}
4. reduce
reduce()
方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。
const array1 = [1, 2, 3, 4];
const reducer = (previousValue, currentValue) => previousValue + currentValue;