我已经检查过此页: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"]
有人可以解释为什么?
最佳答案
医生说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
的方式无关。根据文档的顺序与for...in
循环。我在对象上运行for ... in循环,这就是我得到的命令。2,7,100
。
这就是为什么您得到["2", "b"]
而不是["100", "a"]
的原因。正如其他人在这里提到的那样,顺序似乎是那样的,因为2