Reputation: 631
I currently have an array of objects that looks like this:
[
{
"key":"CES0000000001",
"25568.95655":"29923",
"25568.96078":"31603"
},
{
"key":"CES0000000001",
"25568.96501":"34480",
"25568.96924":"38347"
}
]
I'm trying to figure out the best way to restructure this data to look like this:
[
{
"key":"CES0000000002",
"values": [ [ 25568.95655 , 29923 ] , [ 25568.96078 , 31603 ] ]
},
{
"key":"CES0000000002",
"values": [ [ 25568.96501 , 34480 ] , [ 25568.96924 , 38347 ] ]
}
]
Can anyone provide some advice for this and any good resources for restructuring javascript objects? I'm getting more into visualization using d3.js and data formatting is key.
Upvotes: 1
Views: 5767
Reputation: 21
This is an old post I see, but I want to share how you could do this with es6 object destructuring and restructuring. if you have an object...
const obj1 = {
"key":"CES0000000001",
"25568.95655":"29923",
"25568.96078":"31603"
};
you could have:
const restructure = ({key, ...values}) => ({key, Object.entries(values)});
const obj2 = restructure(obj1);
or for the array you could restructure all of them with:
const b = arr.map(({key, ...values}) => ({key, Object.entries(values)}));
or if you are reusing the function...
const b = arr.map(restructure);
Upvotes: 2
Reputation: 465
my solution would be
var arr= [
{
"key":"CES0000000001",
"25568.95655":"29923",
"25568.96078":"31603"
},
{
"25568.96501":"34480",
"25568.96924":"38347"
}
];
var transformed= arr.map(function(obj){
var result= {
key: obj.key,
values: []
}
for (var key in obj) {
if (obj.hasOwnProperty(key) && key !== "key") {
result.values.push([key, obj[key]]);
}
}
return result;
});
console.log(transformed);
Upvotes: 6