我有一个包含
等对象的数组[
{
"name": "foo",
"value": "bar"
},
{
"name": "foo1",
"value": "bar1"
}
]
我想要像
这样的东西{"foo":"bar","foo1":"bar1"}
有人可以帮我解决这个问题吗?
答案 0 :(得分:2)
只需使用Object.assign
var arr = [
{
"name": "foo",
"value": "bar"
},
{
"name": "foo1",
"value": "bar1"
}
];
var arr2 = arr.reduce((z, {name,value})=>
Object.assign(z, {[name]: value}), {});
console.log(arr2);
这是ES5版本
var arr = [
{
"name": "foo",
"value": "bar"
},
{
"name": "foo1",
"value": "bar1"
}
];
var arr2 = arr.reduce(function(a,b) {
a[b.name] = b.value;
return a;
}, {});
console.log(arr2);
答案 1 :(得分:1)
您可以简单地遍历数组并按属性构建对象属性
使用Array.prototype.forEach
:
var arr = [
{
"name": "foo",
"value": "bar"
},
{
"name": "foo1",
"value": "bar1"
}
];
var o = {};
arr.forEach(function(x) {
o[x.name] = x.value;
});
console.log(o);
答案 2 :(得分:0)
let items = [
{
"name": "foo",
"value": "bar"
},
{
"name": "foo1",
"value": "bar1"
}
]
let myObject = {}
for (let item of items) {
myObject[item.name] = item.value;
}
console.log(myObject);
请注意,这是在es6。