js forEach总是获取到最后一次的值
时间: 2023-09-21 19:08:31 浏览: 39
你的问题描述不够清晰,所以我不确定你的实际问题是什么。不过,我猜测你可能是在 `forEach` 循环中想要获取到当前迭代的元素,但是获取到的却总是最后一个元素。如果是这样,那么解决这个问题的方法是使用 `let` 关键字定义变量,而不是使用 `var`。
例如,假设有一个数组 `arr`,你想要在 `forEach` 循环中输出每个元素的值:
```
const arr = [1, 2, 3, 4, 5];
arr.forEach((element) => {
console.log(element);
});
```
这个代码片段会输出数组中的每个元素的值。但是,如果你在循环中定义一个变量并赋值为当前元素,使用 `var` 关键字定义变量的话,你会发现最终输出的总是最后一个元素的值:
```
const arr = [1, 2, 3, 4, 5];
var lastElement;
arr.forEach((element) => {
lastElement = element;
});
console.log(lastElement); // 输出 5
```
要解决这个问题,只需要使用 `let` 关键字定义变量即可:
```
const arr = [1, 2, 3, 4, 5];
let lastElement;
arr.forEach((element) => {
lastElement = element;
});
console.log(lastElement); // 输出 5
```
使用 `let` 关键字定义变量会创建一个块级作用域,使得每个循环迭代都有自己的变量。这样,就可以正确地获取到每个元素的值了。