我需要在单独的位置获取对象的键和值,并想知道.keys()中给出的顺序是否与.values()中的顺序一致
我不在乎与插入方式有关的顺序。本质上,我只想知道.keys()[0]对应于.values()[0] 、. keys()[1]对应于.values()[1]等,
是否需要将其转换为Map以确保这种并行一致性,还是可以将其保留为Object?
答案 0 :(得分:0)
在规范中,Object.keys()
和Object.values()
的指定方式相同:
- 让obj be吗? ToObject(O)。
- 让nameList为? EnumerableOwnPropertyNames(obj,“ value”)。
- 返回CreateArrayFromList(nameList)。
- 让obj be吗? ToObject(O)。
- 让nameList为? EnumerableOwnPropertyNames(obj,“ key”)。
- 返回CreateArrayFromList(nameList)。
EnumerableOwnPropertyNames指定顺序:
对属性的元素进行排序,以便它们与Iterator产生的相对顺序相同,如果用O调用EnumerateObjectProperties内部方法,则返回的迭代器相同。
所以,是的,顺序应该相同。