javascript - 使用 ES6 重命名对象的子键
问题描述
我有以下结构的 JS 对象:
let data = {
Apples: {
A: 2,
B: 9
},
Oranges: {
C: 4,
D: 8
},
Bananas: {
E: 3,
F: 2
},
Peaches: {
G: 8,
H: 4
},
Pears: {
I: 10,
J: 10
},
Melons: {
K: 4,
L: 7
}
};
我需要用 JS 动态地重命名子键。
例如,我需要将密钥重命名A
为New name
. 启用 ES6 的最佳方式是什么?
我尝试使用一个简单的for
循环遍历对象并使用重命名的键生成一个新对象,但这确实不是最有效的方法!
解决方案
那这个呢?
我没有生成新对象,而是将新属性添加到现有对象并删除原始对象。
let data = {
Apples: {
A: 2,
B: 9
},
Oranges: {
C: 4,
D: 8
},
Bananas: {
E: 3,
F: 2
},
Peaches: {
G: 8,
H: 4
},
Pears: {
I: 10,
J: 10
},
Melons: {
K: 4,
L: 7
}
};
for (let key1 in data) {
const e = data[key1];
for (let key2 in e) {
e["New Name for " + key2] = e[key2];
delete e[key2];
}
}
console.log(data);
推荐阅读
- excel - 将 Excel 数据粘贴到 PowerPoint 图表数据中
- vba - 如何在 xmlhttp (vba) 中传递参数
- javascript - 如何正确地从元素类型中获取值?
- python - 如何在 python Tkinter 类之外更改标签属性
- arrays - 尝试向数组添加值时出现“+=:找不到命令”-Shell 脚本
- r - rep("contr.dummy", l) 中的错误:无效的 'times' 参数 rStudio 错误
- c# - Itext 7 和 C# - 特殊字符的不同字体
- android - 片段内 WebView 中的超链接单击应在活动中的新 WebView 中打开(棘手)
- c# - 字符串的有效日期时间转换
- mysql - 在 Ubuntu Linux 18.04 LTS 上安装 Mysql 5.7.29