首页 > 解决方案 > Js中forEach赋值

问题描述

我正在尝试在 forEach 范围中定义一个变量,如下所示:

let myVar;

Object.entries(obj).forEach(([key, value]) => myVar = key);

console.log(myVar) // this is undefined, why?

标签: javascript

解决方案


首先,我会避免这种情况:您正在创建可能导致难以调试的错误的副作用。肯定有更好的方法来做你想做的事——例如,如果你想捕获一个对象的最后一个键。

然而。您编写的代码有效,它会undefined根据obj. 例如:

let myVar;

Object.entries({}).forEach(([key, value]) => myVar = key);

console.log(myVar) // undefined

在哪里:

let myVar;

Object.entries({foo:1, bar:2}).forEach(([key, value]) => myVar = key);

console.log(myVar) // "bar"

推荐阅读