我已查看过此页:mozilla documentation
我不明白为什么索引0用:
const object3 = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.entries(object3)[0]);
// expected output: Array ["100", "a"] <== i thought of this
相反,文档说你得到:
// expected output: Array ["2", "b"]
有人可以解释原因吗?
答案 0 :(得分:1)
文档说Object.entries
返回给定对象的数组,可枚举属性[key,value]
对。所以,如果你看一下这个陈述,那就太令人困惑了
const object3 = { 100: 'a', 2: 'b', 7: 'c' };
并在致电["2", "b"]
时收到Object.entries(object3)[0]
。
执行此操作Object.entries(object3)[0]
时,您正在访问此函数Object.entries(object)
返回的索引为0的对。此数组的顺序与您首先定义object3
的方式无关。根据文档的顺序与a提供的顺序相同
for...in
循环。我在对象上运行for ... in循环,这就是我得到的顺序。
2,7,100
。
这就是您获得["2", "b"]
而不是["100", "a"]
的原因。正如其他人在此提到的那样,顺序似乎是那样,因为2 <7 <100。