【发布时间】:2019-12-22 03:14:42
【问题描述】:
我有一个对象:
blocks: [
{
type: 'animal',
data: { text: 'Bark bark' }
},
{
type: 'human',
data: { text: 'Speak speak' }
},
...
]
data: 命名不符合我的需要,我想将其重命名为 type 值。所以它应该是这样的:
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,
....
});
});
【问题讨论】:
-
@sideshowbarker 你是对的,这在某种程度上是重复的,我找到了链接的线程,但我无法理解它。幸运的是 zfrisch 把它归结为最简单的例子 :-)
标签: javascript json