📜  在 JavaScript 中对数组进行 for-each(1)

📅  最后修改于: 2023-12-03 15:07:40.847000             🧑  作者: Mango

在 JavaScript 中对数组进行 for-each

在 JavaScript 中,可以使用 Array.prototype.forEach() 方法对数组进行 for-each 操作。该方法可以接受一个函数作为参数,该函数将在数组中的每个元素上调用一次。这个函数有三个参数,分别是数组元素值、元素索引和数组本身。

const arr = ['apple', 'banana', 'orange'];

arr.forEach(function(element, index, array) {
  console.log(element, index, array);
});
// 输出:
// "apple" 0 ["apple", "banana", "orange"]
// "banana" 1 ["apple", "banana", "orange"]
// "orange" 2 ["apple", "banana", "orange"]

使用箭头函数可以使代码更加简洁:

const arr = ['apple', 'banana', 'orange'];

arr.forEach((element, index, array) => console.log(element, index, array));
// 输出:
// "apple" 0 ["apple", "banana", "orange"]
// "banana" 1 ["apple", "banana", "orange"]
// "orange" 2 ["apple", "banana", "orange"]

Array.prototype.forEach() 方法还可以接受第二个参数,用于设置函数中的 this 值。如果不指定第二个参数,则默认为 undefined

const arr = ['apple', 'banana', 'orange'];
const obj = { name: 'fruits', color: 'blue' };

arr.forEach(function(element) {
  console.log(this.name, element);
}, obj); // 指定函数中的 this 对象为 obj

// 输出:
// "fruits" "apple"
// "fruits" "banana"
// "fruits" "orange"

需要注意的是,Array.prototype.forEach() 方法是无法使用 breakreturn 语句提前结束循环的,如果需要提前结束循环,可以使用 Array.prototype.some()Array.prototype.every() 方法。

const arr = [1, 2, 3, 4, 5];

// 使用 Array.prototype.some() 匹配到第一个符合条件的元素就结束循环
arr.some(function(element) {
  console.log(element);
  return element === 3; // 匹配到元素 3 后结束循环
});

// 输出:
// 1
// 2
// 3

// 使用 Array.prototype.every() 匹配所有符合条件的元素才结束循环
arr.every(function(element) {
  console.log(element);
  return element < 3; // 匹配到元素 3 后结束循环
});

// 输出:
// 1
// 2
// 3