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

JavaScript中重命名对象数组内指定键名的最高效方法是什么?

原代码问题说明

你现有写法首先存在大小写不匹配的问题:原数组对象的键是大写开头的Name和Age,你写的item.name、item.age会读取到undefined,需要先修正大小写对应。

效率更高的实现方案

效率最高的实现是原地修改原数组内的对象,不需要额外创建新数组和新对象,内存开销和执行耗时都比你当前用map新建数组的方式更低,示例代码如下:

// 遍历直接修改原对象,10条数据下几乎无耗时,万级以上数据性能优势更明显
for (let i = 0, len = myArray.length; i < len; i++) {
  const current = myArray[i];
  // 新增DisplayName属性
  current.DisplayName = current.Name;
  // 删除原Name属性
  delete current.Name;
  // 如果需要同时把Age改为小写age,加上下面两行
  // current.age = current.Age;
  // delete current.Age;
}

不可修改原对象场景的优化写法

如果业务要求不能修改原数组和原对象,需要返回新的 immutable 数据,可以用解构赋值简化写法,不用手动枚举所有键,可维护性更强,性能和你原写法基本持平:

const newArray = myArray.map(({ Name, Age, ...otherProps }) => ({
  DisplayName: Name,
  age: Age,
  ...otherProps
}));

补充说明

如果你的数组长度只有10条,几种写法的性能差异完全感知不到,只有当数据量达到万级及以上时,原地修改的for循环才会体现出明显的性能优势。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:09:04