I have an object like this:
[
{ "number": 12, "string": "hi"},
{ "number": 40, "string": "bye"}
]
I want:
{"number": [12, 40], "string": ["hi", "bye"]}
Or:
{"number": "12,40", "string": "hi,bye"}
You can use Array.prototype.reduce():
The
reduce()
method executes a reducer function (that you provide) on each member of the array resulting in a single output value.
Solution With Concatenated String:
var data = [
{ "number": 12, "string": "hi"},
{ "number": 40, "string": "bye"}
]
data = data.reduce((a,c)=>{
a.number = a.number + ',' +c.number;
a.string = a.string + ',' +c.string;
return a;
});
console.log(data);
Solution With Array:
var data = [
{ "number": 12, "string": "hi"},
{ "number": 40, "string": "bye"}
]
data = data.reduce((a,c)=>{
a.number.push(c.number);
a.string.push(c.string);
return a;
}, {number:[],string:[]});
console.log(data);