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

JavaScript如何替换对象属性名?实现属性名与数组映射替换

嗨,作为编程新手能尝试动手写代码已经超棒啦!我来帮你完成这个属性名替换的函数,完美实现你想要的效果~

问题分析

你需要把旧对象里的每个属性名,对应替换成新名称数组里同位置的名字,同时保留原来的属性值。比如旧对象里第一个属性Daniel对应新数组第一个元素Felix,值18也跟着保留下来。

完整实现代码

这里给你两种写法,适配不同的JS环境,你可以根据自己的情况选择:

现代ES6+版本(推荐)

function swapNames(oldObj, newNames) {
  const newObj = {};
  // 获取旧对象的所有属性名,按顺序组成数组
  const oldKeys = Object.keys(oldObj);
  
  // 遍历每个属性名,对应替换成新名称
  oldKeys.forEach((key, index) => {
    newObj[newNames[index]] = oldObj[key];
  });
  
  return newObj;
}

// 测试用例
const originalObj = {Daniel:18,Tyler:21,Michelle:22,Austin:20};
const newNamesArr = ["Felix", "Carlos", "Sasha", "John"];
const result = swapNames(originalObj, newNamesArr);
console.log(result); // 输出:{Felix:18,Carlos:21,Sasha:22,John:20}

ES5兼容版本(适合旧环境)

function swapNames(oldObj, newNames) {
  var newObj = {};
  var oldKeys = Object.keys(oldObj);
  
  for(var i = 0; i < oldKeys.length; i++) {
    var oldKey = oldKeys[i];
    newObj[newNames[i]] = oldObj[oldKey];
  }
  
  return newObj;
}
代码解释
  • 第一步创建空对象newObj,用来存放最终的结果。
  • Object.keys(oldObj)会把旧对象的所有属性名提取成一个数组,顺序和对象里的属性顺序一致(现代JS中对象的键会保留插入顺序)。
  • 遍历旧属性名数组时,用索引index对应新名称数组的位置,把旧对象的属性值赋值给新对象的新属性名。
  • 最后返回新对象就完成替换啦!
注意事项

要确保newNames数组的长度和旧对象的属性数量一致哦,不然会出现属性遗漏(数组更短)或者多余的undefined值(数组更长)的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:27:32