Answers:
要遍历键/值,请使用 for in
循环:
for (let key in myDictionary) {
let value = myDictionary[key];
// Use `key` and `value`
}
Object.keys(target).forEach(key => { let value = target(key); /* Use key, value here */ });
。如果您必须显示此方法,请至少对尚不了解的人提及风险和更好的选择。
<ES 2017:
Object.keys(obj).forEach(key => {
let value = obj[key];
});
> = ES 2017:
Object.entries(obj).forEach(
([key, value]) => console.log(key, value);
);
这个怎么样?
for (let [key, value] of Object.entries(obj)) {
...
}
Ian提到的键/值循环有一个警告。如果对象可能具有附加到其原型的属性,并且当您使用in
运算符时,将包括这些属性。因此,您将需要确保键是实例的属性,而不是原型的属性。较旧的IE以indexof(v)
显示为密钥而闻名。
for (const key in myDictionary) {
if (myDictionary.hasOwnProperty(key)) {
let value = myDictionary[key];
}
}
key
和value
可以是const
。
hasOwnProperty
从目标对象中调用检查,而是这样做:...if (Object.prototype.hasOwnProperty.call(myDictionary, key))...
否则,如果您将eslint与no-prototype-builtins
rule 一起使用,它将发出错误。
for (var key in myDictionary) { }
?在循环内部,您将使用key
获取密钥并myDictionary[key]
获取值