kni*_*ion 3 javascript properties key object ecmascript-6
const cars = [
{
'id': 'truck',
'defaultCategory': 'vehicle'
}
]
const output = []
Object.keys(cars).map((car) => {
output.push({
foo: cars[car].defaultCategory
})
})
console.log(output)
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我想要实现的是新的crated对象具有的结构'truck': 'vehicle'.
所以,如果我用...替换push参数
${cars[car].id}`: cars[car].defaultCategory
Run Code Online (Sandbox Code Playgroud)
我明白了 SyntaxError: Unexpected template string
我究竟做错了什么?
在数组上使用map,而不是键(索引)来获取对象数组.对于每个对象,使用计算属性名称将id值设置为键:
const cars = [
{
'id': 'truck',
'defaultCategory': 'vehicle'
}
];
const result = cars.map(({ id, defaultCategory }) => ({ [id]: defaultCategory }));
console.log(result);Run Code Online (Sandbox Code Playgroud)