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

JavaScript 如何依据指定数组顺序重排对象数组中各对象的属性

按指定顺序调整对象数组内属性顺序的JS实现

实现逻辑

JS从ES6标准开始,对象的可枚举字符串属性会按照创建时的插入顺序排列,基于这个特性我们只需要按参考顺序逐个给新对象赋值,即可得到属性顺序符合要求的对象。

完整代码

// 待排序数组
let arrToSort = [
   { Architect: 'Terry', Client: 'AZ', ClientType: 'Kids', Location: 'USA'},
   { Architect: 'Mary', Client: 'XY', ClientType: 'Clothes', Location: 'Germany'},
   { Architect: 'Jerry', Client: 'BC', ClientType: 'Construction', Location: 'Canada'}
];
// 属性顺序参考数组
let accordingTo = ["ClientType", "Architect", "Location", "Client"];

// 转换逻辑
const finalArr = arrToSort.map(originObj => {
  const sortedObj = {};
  // 按参考顺序逐个插入属性到新对象
  accordingTo.forEach(propName => {
    sortedObj[propName] = originObj[propName];
  });
  return sortedObj;
});

// 输出结果
console.log(finalArr);

注意事项

如果你需要兼容ES5及更早的老旧JS环境,不要依赖普通对象的属性顺序,你可以改用Map结构存储有序的键值对:

const finalMapArr = arrToSort.map(originObj => {
  const sortedMap = new Map();
  accordingTo.forEach(propName => {
    sortedMap.set(propName, originObj[propName]);
  });
  return sortedMap;
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:24:04