我对 Object.entries()[i] 感到困惑
I m confused with Object.entries()[i]
我查看了这个页面: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"]
谁能解释一下为什么?
这是因为该对象具有数字键,当您使用数字键操作该对象时,javascript 会按 key
值的升序对 key-values
进行排序,并且由于您有键 2
、7
和 100
。所以,当你 console.log
对象 Object.entries(object3)
时检查这个你得到排序,当你访问 [0]
你得到 Array ["2", "b"]
const object3 = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.entries(object3));
进一步说明当键值是数字时通过升序对对象进行排序。 javascript 在幕后对它们进行分类。
var a = {
10: 'ten',
5: 'five',
11: 'eleven',
1: 'one'
};
console.log(a);
文档说 Object.entries
returns 给定对象的数组可枚举 属性 [key,value]
对。所以是的,如果你看这个声明,它会令人困惑
const object3 = { 100: 'a', 2: 'b', 7: 'c' };
并在您调用 Object.entries(object3)[0]
时最终得到 ["2", "b"]
。
当您执行此操作时 Object.entries(object3)[0]
,您正在访问此函数 Object.entries(object)
返回的索引为 0 的一对。该数组的顺序与您最初定义 object3
的方式无关。根据文档的顺序与提供的顺序相同
for...in
循环。我 运行 对象上的 for...in 循环,这就是我得到的命令。
2,7,100
。
这就是您得到 ["2", "b"]
而不是 ["100", "a"]
的原因。正如其他人在这里提到的那样,顺序似乎是这样的,因为 2<7<100。
我查看了这个页面: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"]
谁能解释一下为什么?
这是因为该对象具有数字键,当您使用数字键操作该对象时,javascript 会按 key
值的升序对 key-values
进行排序,并且由于您有键 2
、7
和 100
。所以,当你 console.log
对象 Object.entries(object3)
时检查这个你得到排序,当你访问 [0]
你得到 Array ["2", "b"]
const object3 = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.entries(object3));
进一步说明当键值是数字时通过升序对对象进行排序。 javascript 在幕后对它们进行分类。
var a = {
10: 'ten',
5: 'five',
11: 'eleven',
1: 'one'
};
console.log(a);
文档说 Object.entries
returns 给定对象的数组可枚举 属性 [key,value]
对。所以是的,如果你看这个声明,它会令人困惑
const object3 = { 100: 'a', 2: 'b', 7: 'c' };
并在您调用 Object.entries(object3)[0]
时最终得到 ["2", "b"]
。
当您执行此操作时 Object.entries(object3)[0]
,您正在访问此函数 Object.entries(object)
返回的索引为 0 的一对。该数组的顺序与您最初定义 object3
的方式无关。根据文档的顺序与提供的顺序相同
for...in
循环。我 运行 对象上的 for...in 循环,这就是我得到的命令。
2,7,100
。
这就是您得到 ["2", "b"]
而不是 ["100", "a"]
的原因。正如其他人在这里提到的那样,顺序似乎是这样的,因为 2<7<100。