Array.prototype.forEach()
Array.prototype.forEach() 方法用于迭代数组的每项成员。
语法
语法:
arr.forEach( callbackfn [, thisArg ] )
类型声明:
interface Array<T> {
  forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;
}
参数说明:
| 参数 | 说明 | 类型 | 
|---|---|---|
| callbackfn | 用于遍历数组成员时执行的回调函数 | function | 
| thisArg | 执行回调函数的 this值 | 
callbackfn 函数的参数:
- currentValue:当前数组中处理的元素
- index:数组中正处理的当前元素的索引
- array:被调用的数组
返回值:
返回 undefined。
方法说明
- 该方法按升序为数组中含有效值的每一项执行一次回调函数,那些已删除(使用 delete方法等情况)或者未初始化的项将被跳过(但不包括那些值为undefined的项,例如在稀疏数组中)。
- 该方法遍历的范围在第一次调用回调函数前就会确定。调用 forEach()后添加到数组中的项不会被callbackfn访问到。如果已经存在的值被改变,则传递给callbackfn的值是forEach遍历到他们那一刻的值。已删除的项不会被遍历到。如果已访问的元素在迭代时被删除了(例如使用shift()) ,之后的元素将被跳过。
- forEach()为每个数组元素执行- callbackfn函数;不像- map()或者- reduce(),它总是返回- undefined值,并且不可链式调用。典型用例是在一个链的最后执行副作用。
注意: 没有办法中止或者跳出 forEach 循环,除了抛出一个异常。如果你需要这样,使用 forEach() 函数是错误的,你可以用一个简单的循环作为替代。如果您正在测试一个数组里的元素是否符合某条件,且需要返回一个布尔值,那么可使用 every() 或 some()。如果可用,新方法 find() 或者 findIndex() 也可被用于真值测试的提早终止。
代码示例
const arr = ['a', 'b', 'c'];
arr.forEach(function (element) {
  console.log(element);
});
arr.forEach((element) => console.log(element));
// a b c