📅  最后修改于: 2023-12-03 15:15:10.626000             🧑  作者: Mango
在JavaScript中,forEach
是一种数组迭代方法。它允许您使用函数处理数组的每个元素。
下面是forEach方法的语法:
array.forEach(function(currentValue, index, array) {
// 待执行代码
}, thisArg);
该方法接收两个参数:
function(currentValue, index, array)
:必需,通常被称为回调函数。对于数组中的每个元素都会执行该回调函数。thisArg
:可选参数,指定执行回调函数时在其中使用的this对象。假设我们有一个名为fruits
的数组,存储了一些水果名称。我们可以使用forEach
循环遍历这个数组,并在控制台中打印出每种水果的名称。
const fruits = ['apple', 'banana', 'cherry'];
fruits.forEach(function(fruit) {
console.log(fruit);
});
// 输出 'apple', 'banana', 'cherry'
在上面的示例中,我们定义了一个匿名函数,其作为回调函数传递给forEach
方法。该函数会以fruit
作为参数,然后打印出fruit
的值。
除了参数currentValue
之外,forEach
回调函数还可以接收其他两个参数:index
和array
。
const fruits = ['apple', 'banana', 'cherry'];
fruits.forEach(function(fruit, index) {
console.log(index, fruit);
});
// 输出 '0 apple', '1 banana', '2 cherry'
在上面的示例中,我们通过使用index
变量打印出每种水果的索引位置。
另外,我们也可以指定回调函数内使用的this
:
const obj = {
message: 'The fruit is: ',
printFruit: function(fruit) {
console.log(this.message + fruit);
}
};
const fruits = ['apple', 'banana', 'cherry'];
fruits.forEach(obj.printFruit, obj);
// 输出 'The fruit is: apple', 'The fruit is: banana', 'The fruit is: cherry'
在上面的示例中,我们创建了一个名为obj
的对象,其中包含一个message
属性和一个名为printFruit
的方法。printFruit
方法接收一个fruit
参数,并将message
和fruit
输出到控制台。我们将该方法传递给forEach
中,并将obj
作为第二个参数传递。这意味着当回调函数执行时,我们将obj
作为函数内的this
对象。因此,我们可以在回调函数中使用this.message
。