我有一本格式为
dictionary = {0: {object}, 1:{object}, 2:{object}}
我如何通过执行类似的操作来遍历这本字典
for ((key, value) in dictionary) {
//Do stuff where key would be 0 and value would be the object
}
原文由 nbroeking 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一本格式为
dictionary = {0: {object}, 1:{object}, 2:{object}}
我如何通过执行类似的操作来遍历这本字典
for ((key, value) in dictionary) {
//Do stuff where key would be 0 and value would be the object
}
原文由 nbroeking 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
tl;博士
在 ECMAScript 2017 中,只需调用
Object.entries(yourObj)
。在 ECMAScript 2015 中,可以使用
Map
s。在 ECMAScript 5 中,这是不可能的。
ECMAScript 2017
ECMAScript 2017 引入了一个新的
Object.entries
函数。您可以根据需要使用它来迭代对象。输出
ECMAScript 2015
在 ECMAScript 2015 中,没有
Object.entries
,但您可以使用Map
对象并使用Map.prototype.entries
对其进行迭代。引用该页面中的示例,或者用
for..of
迭代,像这样输出
或者
输出
ECMAScript 5:
不,对象不可能。
您应该像这样使用
for..in
或Object.keys
进行迭代注意: 上面的
if
条件只有在你想遍历dictionary
对象自己的属性时才是必要的。因为for..in
将遍历所有继承的可枚举属性。或者