gpt4 book ai didi

javascript - 在对象上使用 Object.values() 后,数组元素的顺序是否可以更改?

转载 作者:行者123 更新时间:2023-11-30 11:21:02 25 4
gpt4 key购买 nike

我有一个这样的对象:

object = {
1483295400000: {label: "Jan 02 to 08", total: 8062, billings: Array(4)},
1483900200000: {label: "Jan 09 to 15", total: 9940, billings: Array(8)},
1484505000000: {label: "Jan 16 to 22", total: 7901, billings: Array(5)},
1485109800000: {label: "Jan 23 to 29", total: 4652, billings: Array(3)},
1485714600000: {label: "Jan 30 to 05", total: 3952, billings: Array(2)}
}

当我使用 Object.values(object) 时,我得到了一个这样的数组:

[
{ label: "Jan 23 to 29", total: 4652, billings: Array(3) },
{ label: "Jan 16 to 22", total: 7901, billings: Array(5) },
{ label: "Jan 02 to 08", total: 8062, billings: Array(4) },
{ label: "Jan 09 to 15", total: 9940, billings: Array(8) },
{ label: "Jan 30 to 05", total: 3952, billings: Array(2) }
]

为什么数组中对象的顺序发生了变化,原因是什么?

最佳答案

根据 Dr. Axel Rauschmayer's article - The traversal order of object properties in ES6 ,遍历顺序为:

  • 首先,键是整数索引(稍后解释这些是什么),按数字升序排列。
  • 然后,所有其他字符串键,按照它们被添加到对象的顺序。
  • 最后,所有符号键,按照它们被添加到对象的顺序。

演示:

const obj = { b: 'key1', 3: 'c', 1: 'a', 2: 'b', a: 'key2' };

console.log(Object.values(obj)); // a, b, c - values of numerical keys, key1 and key2 - string keys in order of appearance in original object

关于javascript - 在对象上使用 Object.values() 后,数组元素的顺序是否可以更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49818043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com