JavaScript 重命名对象键
JavaScript不提供内置函数来重命名对象键。因此我们将探讨不同的方法来实现这一目标。
键: 在JavaScript中,对象用于存储各种数据的集合。它是一组属性。属性是 “键: 值” 对,其中 键 被称为 “属性名” ,用于标识值。
方法1
通过简单赋值变量来重命名对象。在变量或变量的赋值之后,我们将删除旧的键值对并打印新的键值对。
语法:
obj['New key'] = obj['old key'];
注意: 通过简单的变量赋值来重命名对象可以应用于多个键和值对。
示例:
// JavaScript Program to illustrate renaming
// Creating an object 'capital' with
// key "Burma" and value "Naypitaw"
let capitals = [{
"Burma": "Naypyitaw"
}];
console.log(capitals);
// Function to rename on button click
function rename() {
capitals = capitals.map(function (obj) {
// Assign new key
obj['Myanmar'] = obj['Burma'];
// Delete old key
delete obj['Burma'];
return obj;
});
console.log(capitals);
}
rename();
输出
[ { Burma: 'Naypyitaw' } ]
[ { Myanmar: 'Naypyitaw' } ]
方法2
在这个方法中,我们将利用 defineProperty() 重命名给定的对象键,通过操作对象的属性来实现。
defineProperty() 方法: 这个静态方法用于定义一个新的对象属性或修改已存在的属性,并返回该对象。它接受3个参数。它们分别是: 要修改的对象 、 键名 以及 描述 属性。
语法:
Object.defineProperty(obj, key, description)
示例:
// JavaScript Program to illustrate renaming key
// Creating an object 'capital' with
// key "Persia" and value "Tehran"
let capitals = [{
"Persia": "Tehran"
}];
console.log(capitals);
// Function to rename old key
function renameKey(obj, old_key, new_key) {
// Check if old key = new key
if (old_key !== new_key) {
// Modify old key
Object.defineProperty(obj, new_key,
// Fetch description from object
Object.getOwnPropertyDescriptor(obj, old_key));
// Delete old key
delete obj[old_key];
}
}
function rename() {
capitals.forEach(obj => renameKey(obj, 'Persia', 'Iran'));
console.log(capitals);
}
rename();
输出
[ { Persia: 'Tehran' } ]
[ { Iran: 'Tehran' } ]