数组foreach
时间: 2025-05-24 10:00:22 浏览: 14
### 数组 `forEach()` 方法详解
`forEach()` 是 JavaScript 中用于遍历数组的一种常用方法。它会对调用它的数组中的每个元素依次执行一次提供的回调函数,但不会返回任何值(即返回 `undefined`)。此方法适用于简单的迭代操作。
---
#### 基本语法
```javascript
array.forEach(callback(currentValue, index, array), thisArg);
```
- **callback**: 对数组中每个元素执行的函数。
- **currentValue**: 正在处理的当前元素。
- **index (可选)**: 正在处理的当前元素的索引。
- **array (可选)**: 调用了 `forEach` 的原始数组。
- **thisArg (可选)**: 执行回调时作为 `this` 提供的值。
---
#### 特点
1. 遍历过程中无法中途停止或退出循环[^1]。
2. 不会改变原数组的内容,但在回调函数内部可以直接修改数组元素[^4]。
3. 自动跳过数组中的空位(稀疏数组)[^2]。
---
#### 示例代码
##### 示例 1:基本用法
以下例子展示了如何使用 `forEach()` 来打印数组中的每一个元素:
```javascript
const fruits = ['苹果', '香蕉', '橙子'];
fruits.forEach(function(fruit) {
console.log(fruit);
});
// 输出:
// 苹果
// 香蕉
// 橙子
```
##### 示例 2:带有索引和数组参数
下面的例子演示了如何访问当前索引以及原始数组:
```javascript
const numbers = [1, 2, 3];
numbers.forEach(function(value, index, arr) {
console.log(`第 ${index} 个元素是 ${value}, 属于数组 ${arr}`);
});
// 输出:
// 第 0 个元素是 1, 属于数组 1,2,3
// 第 1 个元素是 2, 属于数组 1,2,3
// 第 2 个元素是 3, 属于数组 1,2,3
```
##### 示例 3:修改原数组
虽然 `forEach()` 不直接返回新数组,但它允许我们在回调函数中修改原数组:
```javascript
let nums = [1, 2, 3];
nums.forEach((num, i) => {
nums[i] = num * 10;
});
console.log(nums); // 输出: [10, 20, 30]
```
##### 示例 4:跳过空位
对于稀疏数组,`forEach()` 会自动忽略未定义的元素位置:
```javascript
const sparseArray = [1,, 3];
sparseArray.forEach(function(item, index) {
console.log(index, item);
});
// 输出:
// 0 1
// 2 3
```
---
#### 注意事项
1. 如果需要提前终止循环,应改用其他控制结构(如 `for` 或 `while`),因为 `forEach()` 并不支持 `break` 或 `return` 终止整个循环[^1]。
2. 在严格模式下,`this` 默认为 `undefined`,因此如果需要指定上下文,需显式传递 `thisArg` 参数[^3]。
---
### 总结
`forEach()` 是一种简单易用的数组遍历工具,适合不需要返回新数组的情况。然而,在需要中断循环或生成新数组时,建议考虑更灵活的方法,比如 `map()` 或传统的 `for` 循环。
---
阅读全文
相关推荐


















