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-builtinsrule 一起使用,它将发出错误。
for (var key in myDictionary) { }?在循环内部,您将使用key获取密钥并myDictionary[key]获取值