gpt4 book ai didi

javascript - 如何用变量重命名对象的键?

转载 作者:行者123 更新时间:2023-11-28 17:00:56 25 4
gpt4 key购买 nike

我有一个对象:

blocks: [
{
type: 'animal',
data: { text: 'Bark bark' }
},
{
type: 'human',
data: { text: 'Speak speak' }
},
...
]

data:命名不符合我的需要,我想将其重命名为 type值(value)。所以它应该看起来像这样:

blocks: [
{
type: 'animal',
animal: { text: 'Bark bark' }
},
{
type: 'human',
human: { text: 'Speak speak' }
},
...
]

如何用很少的 JavaScript 代码实现这一点?我的解决方案确实有效,但似乎很愚蠢(特别是如果您考虑 10 多种不同类型的情况):

const blocks = [];
oldBlocks.map(block => {
const {type, data} = block;
blocks.push({
type: type,
animal: type === "animal" ? data : undefined,
human: type === "human" ? data : undefined,
....
});
});

最佳答案

使用方括号表示对象内部的表达式,允许您将变量作为键名称进行计算:

blocks.map(({type, data}) => ({ type, [type]: data }));
<小时/>

示例:

let blocks = [
{
type: 'animal',
data: { text: 'Bark bark' }
},
{
type: 'human',
data: { text: 'Speak speak' }
}
],


result = blocks.map(({type, data}) => ({ type, [type]: data }));

console.log(result);

关于javascript - 如何用变量重命名对象的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57513740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com