如何在删除某些元素后重新索引对象?

时间:2017-04-23 23:47:44

标签: javascript object

说我有一个看起来像的对象:

{
  0: { ... }
  1: { ... }
  2: { ... }
  ...
  92812093: { ... }
}

如果在整个对象中删除了一些元素,我该如何保持它们的相对顺序?换句话说,如果在03之间,我删除了密钥2,我希望新密钥为01,{{ 1}},其中0和1未受影响,2已成为3

1 个答案:

答案 0 :(得分:1)

与数组不同,对象实际上没有数字索引。换句话说,当你循环一个对象时,甚至不保证你会以该顺序获得0, 1, 2

如果订单很重要,您可以选择利用数组索引,并将数据格式化为var arr = [x, y, z]。可以使用arr[index]访问此数据。使用popshiftsplice等数组方法删除元素将确保保留订单。

例如,如果我们要拼出arr[1]arr将变为[x, z]z现在将在索引1而不是索引2。