我是Javascript的新手,我需要转换它:
car :[
{ name: "Bwm", color:"red" },
{ name: "Ford", color:"black" },
{ name: "Ferrari", color:"yellow" },
];
要:
anotherObject: {
Bwm: "red",
Ford:"black",
Ferrari:"yellow"
}
答案 0 :(得分:1)
您可以这样做:
car = [
{ name: "Bwm", color:"red" },
{ name: "Ford", color:"black" },
{ name: "Ferrari", color:"yellow" },
];
var anotherObject = {};
for (var i = 0, len = car.length; i < len; i++){
anotherObject[car[i].name] = car[i].color;
}
console.log(anotherObject);
请注意,当您声明car
var时,您有一个sintax错误,替换&#39;:&#39; by&#39; =&#39;。
答案 1 :(得分:1)
你可以这样做。
var car = [
{ name: "Bwm", color:"red" },
{ name: "Ford", color:"black" },
{ name: "Ferrari", color:"yellow" },
];
var anotherObject = {};
car.forEach(function (item,i) {
anotherObject[item.name] = item.color;
});
console.log(anotherObject );
答案 2 :(得分:0)
您应该遍历第一个对象并填充第二个对象。
var car = [
{ name: "Bwm", color:"red" },
{ name: "Ford", color:"black" },
{ name: "Ferrari", color:"yellow" },
];
var anotherObject = {};
for (var i in car)
{
anotherObject[car[i].name] = car[i].color;
}
console.log(anotherObject);
答案 3 :(得分:0)
只需将旧数组缩减为新对象:
var anotherObject = car.reduce(function(obj, value) {
obj[value.name] = value.color;
return obj;
}, {});
您不必以这种方式担心数组索引。
答案 4 :(得分:0)
有许多方法可以在javascript中处理对象和数组。
以上所有答案都是很好的例子。
我想使用map或forEach函数添加另一种方法来实现这一点。
map函数允许您对数组的每个项应用函数并返回替换值。 forEach函数类似于map函数,但没有返回类型。
使用forEach功能
var car = [{
name: "Bwm",
color: "red"
}, {
name: "Ford",
color: "black"
}, {
name: "Ferrari",
color: "yellow"
}, ];
var anotherObject = {};
car.forEach(function(item) {
this[item.name] = item.color;
}, anotherObject);
使用地图功能
var car = [{
name: "Bwm",
color: "red"
}, {
name: "Ford",
color: "black"
}, {
name: "Ferrari",
color: "yellow"
}, ];
var anotherObject = car.map(function(item) {
var obj = {};
obj[item.name] = item.color;
return obj;
});