当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《Object.keys()和Object.values()方法返回保留相同顺序的数组》经验,为你挑选了1个好方法。

做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

Maor Refaeli.. 6

简而言之,

两者Object.keysObject.values(并且还Object.entries()经由)枚举for-in在物体上循环。
由于都使用相同的[[Enumerate]],只要它们被称为具有相同的对象上不变自己的原型(不删除或添加的按键之间的部位keysvalues电话),订单将是相同的。

订单是什么?
这取决于您如何初始化对象,使用的资源管理器以及向该对象插入其他键的顺序。
如果实际顺序对您也很重要(并且不仅结果keysvalues顺序都相同),那么防弹方法就是使用数组

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



1> Maor Refaeli..:

简而言之,

两者Object.keysObject.values(并且还Object.entries()经由)枚举for-in在物体上循环。
由于都使用相同的[[Enumerate]],只要它们被称为具有相同的对象上不变自己的原型(不删除或添加的按键之间的部位keysvalues电话),订单将是相同的。

订单是什么?
这取决于您如何初始化对象,使用的资源管理器以及向该对象插入其他键的顺序。
如果实际顺序对您也很重要(并且不仅结果keysvalues顺序都相同),那么防弹方法就是使用数组

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

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有