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

如何重命名对象中的属性?示例:{radiant:11,dire:22}转{alpha:11,omega:22}

嘿,这个需求很常见,我给你几种实用的实现方式,你可以根据自己的场景来选:

方案1:创建新对象(推荐,不修改原数据)

如果希望保留原来的对象不变,直接基于原对象的值创建一个新对象是最稳妥的方式,直观且不会产生副作用:

const original = { radiant: 11, dire: 22 };
const modified = { alpha: original.radiant, omega: original.dire };

console.log(modified); // 输出: { alpha: 11, omega: 22 }
console.log(original); // 原对象不受影响: { radiant: 11, dire: 22 }

这种方式特别适合需要保留原始数据的场景,比如后续还要用到原对象的情况。

方案2:直接修改原对象(适合不需要保留原对象的场景)

如果不需要保留原来的对象,可以直接在原对象上删除旧属性、添加新属性:

// 注意如果要修改原对象,最好用let声明(如果原来用const的话无法重新赋值)
let obj = { radiant: 11, dire: 22 };

// 先添加新属性,把对应的值传过去
obj.alpha = obj.radiant;
obj.omega = obj.dire;

// 删除旧属性
delete obj.radiant;
delete obj.dire;

console.log(obj); // 输出: { alpha: 11, omega: 22 }

或者用解构赋值+重新赋值的方式,更简洁:

let obj = { radiant: 11, dire: 22 };
// 解构原对象的属性,并重命名为新键名
const { radiant: alpha, dire: omega } = obj;
// 直接把obj替换成新对象
obj = { alpha, omega };

console.log(obj); // 输出: { alpha: 11, omega: 22 }
方案3:使用对象展开运算符(适合原对象有额外属性的场景)

如果原对象除了radiant和dire还有其他属性,想保留那些属性同时替换这两个键名,可以用展开运算符:

const original = { radiant: 11, dire: 22, extra: "some value" };
const modified = {
  ...original, // 保留原对象的其他属性
  alpha: original.radiant,
  omega: original.dire
};
// 删除旧键
delete modified.radiant;
delete modified.dire;

console.log(modified); // 输出: { extra: "some value", alpha: 11, omega: 22 }

总的来说,方案1是最推荐的,因为它遵循了函数式编程中"避免修改原数据"的原则,能减少不必要的bug。如果必须修改原对象,方案2的解构赋值方式会更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 14:57:32