forEach()
方法的语法为:
arr.forEach(callback(currentValue), thisArg)
在这里, arr是一个数组。
forEach()参数
forEach()
方法采用:
- callback-在每个数组元素上执行的函数 。它包含:
- currentValue-从数组传递的当前元素。
- thisArg (可选)-执行callback时用作
this
值。默认情况下,它是undefined
。
从forEach()返回值
- 返回
undefined
。
注意事项 :
-
forEach()
不会更改原始数组。 -
forEach()
对每个数组元素依次执行一次callback
。 -
forEach()
不会对没有值的数组元素执行callback
。
示例1:打印数组的内容
function printElements(element, index) {
console.log('Array Element ' + index + ': ' + element);
}
const prices = [1800, 2000, 3000, , 5000, 500, 8000];
// forEach does not execute for elements without values
// in this case, it skips the third element as it is empty
prices.forEach(printElements);
输出
Array Element 0: 1800
Array Element 1: 2000
Array Element 2: 3000
Array Element 4: 5000
Array Element 5: 500
Array Element 6: 8000
示例2:使用thisArg
function Counter() {
this.count = 0;
this.sum = 0;
this.product = 1;
}
Counter.prototype.execute = function (array) {
array.forEach((entry) => {
this.sum += entry;
++this.count;
this.product *= entry;
}, this)
}
const obj = new Counter();
obj.execute([4, 1, , 45, 8]);
console.log(obj.count); // 4
console.log(obj.sum); // 58
console.log(obj.product); // 1440
输出
4
58
1440
在这里,我们可以再次看到forEach
跳过了空元素。 thisArg
作为通过this
所述的定义内execute
反对象的方法。
推荐读物: JavaScript Array map()