void(void)
这项工作很好,但我想要实现的是新创建的对象具有const cars = [
{
'id': 'truck',
'defaultCategory': 'vehicle'
}
]
const output = []
Object.keys(cars).map((car) => {
output.push({
foo: cars[car].defaultCategory
})
})
console.log(output)
的结构。
所以如果我用
替换'truck': 'vehicle'
参数
push
我得到${cars[car].id}`: cars[car].defaultCategory
我做错了什么?
答案 0 :(得分:7)
在数组上使用map,而不是键(索引)来获取对象数组。对于每个对象,使用computed property names将id
值设置为键:
const cars = [
{
'id': 'truck',
'defaultCategory': 'vehicle'
}
];
const result = cars.map(({ id, defaultCategory }) => ({ [id]: defaultCategory }));
console.log(result);
答案 1 :(得分:1)
您应该使用.map()
而不是array
而非Object.keys(cars)
:我们不会将Object.keys()
用于数组。
这应该是你的代码:
var output = cars.map(function(car) {
return {
[car.id]: car.defaultCategory
};
});
var cars = [{
'id': 'truck',
'defaultCategory': 'vehicle'
}];
var output = cars.map(function(car) {
return {
[car.id]: car.defaultCategory
};
});
console.log(output);