You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何克隆JavaScript对象数组并重新调整对象键顺序?

调整对象数组中对象的键顺序

要实现按指定顺序重新排列数组中每个对象的键,核心思路是先定义目标键的顺序,再遍历原数组,按该顺序重新构建每个对象。以下是两种可靠的实现方式:

方法一:使用 map + reduce

const desiredOrder = ['Total', 'Number', 'Summer', 'Spring', 'Autumn', 'Winter', 'Difference'];

const updated = data.map(item => {
  return desiredOrder.reduce((newObj, key) => {
    newObj[key] = item[key];
    return newObj;
  }, {});
});

方法二:使用 map + Object.fromEntries(ES2019及以上)

const desiredOrder = ['Total', 'Number', 'Summer', 'Spring', 'Autumn', 'Winter', 'Difference'];

const updated = data.map(item => 
  Object.fromEntries(desiredOrder.map(key => [key, item[key]]))
);

你之前尝试的问题分析

  1. 第一种写法的问题:循环中push的是单个属性值,而非构建新对象,最终得到的是包含所有属性值的一维数组,而非目标的对象数组。
  2. 第二种写法的问题:Object.assign(objectOrder, data[i])会复用同一个objectOrder对象,每次循环都修改它并推入数组,导致数组中所有元素指向同一个对象引用。此外,这种合并方式无法保证严格按你期望的顺序排列键。

内容的提问来源于stack exchange,提问作者kkJhn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 07:30:54