gpt4 book ai didi

javascript - Object.keys() 和 Object.values() 方法是否返回保留相同顺序的数组

转载 作者:数据小太阳 更新时间:2023-10-29 04:43:34 24 4
gpt4 key购买 nike

Object.keys()Object.values()方法返回保留相同顺序的数组?

我的意思是,假设我们有以下对象:

var obj = {};
obj.prop1 = "Foo";
obj.prop2 = "Bar";

如果我调用 obj.keys()obj.values(),它们会以相同的顺序返回属性吗?

prop1
prop2

Foo
Bar

prop2
prop1

Bar
Foo

对吧?

所以下面的选项是不可能的吧?

prop1
prop2

Bar
Foo

最佳答案

简而言之,

两者都是Object.keysObject.values (还有 Object.entries() )通过对象上的 for-in 循环进行枚举。
由于两者使用相同的 [[Enumerate]] ,只要它们在具有相同未更改自己原型(prototype)的对象上调用(在 keysvalues 调用之间不删除或添加键),顺序将相同。

顺序是什么?
这取决于 how you initialized your object , which explorer you are using , 和 the order of which you have inserted additional keys到对象。
如果实际顺序对您也很重要(不仅是 keysvalues 结果将按相同顺序排列)防弹方法将是使用数组

另一种方法:Object.entries()将返回一个 [key, value] 对列表(与 for-in 循环提供的顺序相同),这可能对您的用例更有帮助。

关于javascript - Object.keys() 和 Object.values() 方法是否返回保留相同顺序的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41761732/

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