如何有效地保持 JavaScript 对象数组键值顺序替换后的顺序?

如何有效地保持 javascript 对象数组键值顺序替换后的顺序?

保持 javascript 对象数组键值顺序替换的有效方法

在原对象数组中顺序改变键值时,难以保持顺序。对此,本文提出了一种有效的替换方法。

问题陈述

存在一个对象数组,需要替换键和值,但要求保持顺序,例如:

tabledata = [
  {
    a: '12a',
    b: '12b'
  },
  {
    a: '13a',
    b: '13b'
  }
]

// 替换后(顺序已变)
tabledata = [
  {
    d: '12d',
    b: '12b'
  },
  {
    d: '13d',
    b: '13b'
  }
]

解决方案

javascript 对象键的顺序遵循以下规则:

  • 数字键按升序排序
  • 非数字键按插入顺序排序

因此,只要避免使用数字键,即可保持顺序。修改后的替换方法如下:

function replaceobjkeywithorder<t extends object>(
  obj: t,
  kold: keyof t & string,
  knew: string,
) {
  const entries = object.entries(obj),
    entry = entries.find(([k]) => k === kold)
  entry && (entry[0] = knew)
  return object.fromentries(entries)
}

// 使用替换方法
newtabledata = tabledata.map((v) => replaceobjkeywithorder(v, "a", "d"))</t>

结果

替换后,对象数组保持原始顺序:

[
  { D: '12A', B: '12B' },
  { D: '13A', B: '13B' }
]

这种替换方法解决了顺序错乱的问题,可以有效地替换 javascript 对象数组中的键和值。

以上就是如何有效地保持 JavaScript 对象数组键值顺序替换后的顺序?的详细内容,更多请关注www.sxiaw.com其它相关文章!