Javascript对象/映射键和值顺序一致性

时间:2018-12-28 20:12:49

标签: javascript dictionary object

我需要在单独的位置获取对象的键和值,并想知道.keys()中给出的顺序是否与.values()中的顺序一致

我不在乎与插入方式有关的顺序。本质上,我只想知道.keys()[0]对应于.values()[0] 、. keys()[1]对应于.values()[1]等,

是否需要将其转换为Map以确保这种并行一致性,还是可以将其保留为Object?

1 个答案:

答案 0 :(得分:0)

在规范中,Object.keys()Object.values()的指定方式相同:

Object.values

  
    
        
  1. 让obj be吗? ToObject(O)。
  2.     
  3. 让nameList为? EnumerableOwnPropertyNames(obj,“ value”)。
  4.     
  5. 返回CreateArrayFromList(nameList)。
  6.     
  

Object.keys

  
      
  1. 让obj be吗? ToObject(O)。
  2.   
  3. 让nameList为? EnumerableOwnPropertyNames(obj,“ key”)。
  4.   
  5. 返回CreateArrayFromList(nameList)。
  6.   

EnumerableOwnPropertyNames指定顺序:

  

对属性的元素进行排序,以便它们与Iterator产生的相对顺序相同,如果用O调用EnumerateObjectProperties内部方法,则返回的迭代器相同。

所以,是的,顺序应该相同。