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

如何使用for...in循环修改对象中的键名?

当然能用for...in循环修改对象键名!

你之前的代码只是拼接了字符串但没有实际修改对象的结构,我来帮你调整一下,实现你想要的效果。

首先要明确:对象的键名是不能直接修改的,我们得通过“新增新键并赋值,再删除旧键”的方式来达到“修改键名”的目的。用for...in循环完全可以做到这一点,下面是具体实现:

方法1:直接修改原对象

const meinObject = { name: "Dominic", plz: 9548 }; 

for (let key in meinObject) {
  // 只处理对象自身的属性,跳过原型链继承的属性(这是个好习惯)
  if (meinObject.hasOwnProperty(key)) {
    // 添加带"1"后缀的新键,并把旧键的值赋给它
    meinObject[key + "1"] = meinObject[key];
    // 删除原来的旧键
    delete meinObject[key];
  }
}

console.log(meinObject); 
// 输出结果: { name1: 'Dominic', plz1: 9548 }

方法2:创建新对象(不修改原对象)

如果你不想改动原对象,可以把新键值对放到一个空对象里:

const meinObject = { name: "Dominic", plz: 9548 }; 
const newObject = {};

for (let key in meinObject) {
  if (meinObject.hasOwnProperty(key)) {
    newObject[key + "1"] = meinObject[key];
  }
}

console.log(newObject); 
// 输出结果: { name1: 'Dominic', plz1: 9548 }
console.log(meinObject); // 原对象完全不变:{ name: 'Dominic', plz: 9548 }

补充说明

  • hasOwnProperty的作用:确保我们只遍历对象自身定义的属性,不会误处理原型链上继承来的属性(比如toString这类默认方法)。
  • 为什么不能直接改键名:JavaScript对象的键本质是字符串(或Symbol),一旦创建就无法直接修改,只能通过新增+删除的方式模拟“修改”行为。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 23:57:33