I have an array containing objects like
[
{
"name": "foo",
"value": "bar"
},
{
"name": "foo1",
"value": "bar1"
}
]
and I want something like
{"foo":"bar","foo1":"bar1"}
Can someone please help me out with this ?
I have an array containing objects like
[
{
"name": "foo",
"value": "bar"
},
{
"name": "foo1",
"value": "bar1"
}
]
and I want something like
{"foo":"bar","foo1":"bar1"}
Can someone please help me out with this ?
Just do a reduce with 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);
Here's the ES5 version
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);
You can simply iterate through the array and build your object property-by-property.
It can be done easier with 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);
console.log in the snippets and it will display now