我已经检查过此页: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

10-01 09:54