📜  javascript forEach 循环数组 - Javascript (1)

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

Javascript forEach 循环数组

在Javascript中,有很多种循环方式可以用来遍历数组,其中 forEach() 是一种常用的循环方式。本文将详细介绍 forEach() 的使用方法和特性。

语法

forEach() 的语法如下:

array.forEach(function(currentValue, index, arr), thisValue)

其中:

  • array 是要循环的数组。
  • function(currentValue, index, arr) 是回调函数,用于处理数组中的每个元素。它有三个参数:
    • currentValue:当前遍历到的元素。
    • index:当前元素的下标。
    • arr:当前正在遍历的数组。
  • thisValue 是可选参数,用于指定回调函数内部的 this 的值。
示例

以下是一个简单的例子,使用 forEach() 循环遍历一个数组:

let arr = [1, 2, 3, 4, 5];
arr.forEach((item, index) => {
  console.log(`Item ${index} is ${item}`);
});

输出结果如下:

Item 0 is 1
Item 1 is 2
Item 2 is 3
Item 3 is 4
Item 4 is 5
特性

forEach() 有以下几个特性:

不能使用 breakreturn 跳出循环

forEach() 循环无法使用 breakreturn 来跳出循环,因为它会一直执行到数组的最后一个元素。如果需要在循环内部跳出循环,可以使用 some()every() 方法。

不会修改原数组

forEach() 循环不会修改原数组,因为它只是遍历数组中的每个元素。

可以修改元素值

虽然 forEach() 循环不会修改原数组,但是可以通过回调函数对数组中的元素进行更改,例如:

let arr = [1, 2, 3, 4, 5];
arr.forEach((item, index, arr) => {
  arr[index] = item * item;
});
console.log(arr); // [1, 4, 9, 16, 25]
空元素会跳过

forEach() 会跳过数组中的空元素(值为 undefined 或者 null),例如:

let arr = [1, 2, undefined, 4, null, 5];
arr.forEach((item, index) => {
  console.log(`Item ${index} is ${item}`);
});

输出结果如下:

Item 0 is 1
Item 1 is 2
Item 3 is 4
Item 5 is 5
可以指定回调函数内部的 this 的值

forEach() 的第二个参数 thisValue 可以用来指定回调函数内部的 this 的值,例如:

let obj = {total: 0};
let arr = [1, 2, 3, 4, 5];
arr.forEach(function(item) {
  this.total += item;
}, obj);
console.log(obj.total); // 15
总结

forEach() 是一种常用的循环方式,可以用来遍历数组。它有以下几个特性:

  • 不能使用 breakreturn 跳出循环;
  • 不会修改原数组;
  • 可以修改元素值;
  • 空元素会跳过;
  • 可以指定回调函数内部的 this 的值。