📜  JavaScript数组forEach()

📅  最后修改于: 2020-09-27 05:44:25             🧑  作者: Mango

JavaScript Array forEach()方法为每个数组元素执行提供的函数 。

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()