
保持 javascript 对象数组键值顺序替换的有效方法
在原对象数组中顺序改变键值时,难以保持顺序。对此,本文提出了一种有效的替换方法。
问题陈述
存在一个对象数组,需要替换键和值,但要求保持顺序,例如:
立即学习“Java免费学习笔记(深入)”;
tabledata = [
{
a: '12a',
b: '12b'
},
{
a: '13a',
b: '13b'
}
]
// 替换后(顺序已变)
tabledata = [
{
d: '12d',
b: '12b'
},
{
d: '13d',
b: '13b'
}
]解决方案
javascript 对象键的顺序遵循以下规则:
- 数字键按升序排序
- 非数字键按插入顺序排序
因此,只要避免使用数字键,即可保持顺序。修改后的替换方法如下:
function replaceobjkeywithorder( 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"))
结果
替换后,对象数组保持原始顺序:
[
{ D: '12A', B: '12B' },
{ D: '13A', B: '13B' }
]这种替换方法解决了顺序错乱的问题,可以有效地替换 javascript 对象数组中的键和值。










