var data1=[
{"year":2000,
"country":"Madagascar",
"country_id":847,
"indicator":"Current account balance - National Currency (millions)"
},
{"year":2005,
"country":"Madagascar",
"country_id":847,
"indicator":"Current account balance - National Currency (millions)"
},
{"year":2000,
"country":"Madagascar",
"country_id":847,
"indicator":"Net Income - National Currency (millions)"
},
{"year":2005,
"country":"Madagascar",
"country_id":847,
"indicator":"Net Income - National Currency (millions)"
}
]
this is my json data i want to do like this using underscorejs
{
"key":"Madagascar"
"values":[
{"year":2000,
"country":"Madagascar",
"country_id":847,
"indicator":"Current account balance - National Currency (millions)"
},
{"year":2005,
"country":"Madagascar",
"country_id":847,
"indicator":"Current account balance - National Currency (millions)"
}
]
}
please can any one can help me to solve this problem using underscore.js
Underscore has a _.groupBy() method can do the heavy lifting, but it creates an object with a key for each value:
var groupedData1 = _.groupBy(data1, 'country');
Here's the value of groupedData1:
{"Madagascar": [
{
"year": 2000,
"country": "Madagascar",
"country_id": 847,
"indicator": "Current account balance - National Currency (millions)"
},
{
"year": 2005,
"country": "Madagascar",
"country_id": 847,
"indicator": "Current account balance - National Currency (millions)"
},
{
"year": 2000,
"country": "Madagascar",
"country_id": 847,
"indicator": "Net Income - National Currency (millions)"
},
{
"year": 2005,
"country": "Madagascar",
"country_id": 847,
"indicator": "Net Income - National Currency (millions)"
}
]}
To convert into an array of key/values, you can use _.each() and _.keys() to iterate through each country:
var groupedData2 = [];
_.each(_.keys(groupedData1), function (country) {
groupedData2.push({
"key": country,
"values": groupedData1[country]
});
});
This creates an array of objects, one object for each country:
[{
"key": "Madagascar",
"values": [{
"year": 2000,
"country": "Madagascar",
"country_id": 847,
"indicator": "Current account balance - National Currency (millions)"
}, {
"year": 2005,
"country": "Madagascar",
"country_id": 847,
"indicator": "Current account balance - National Currency (millions)"
}, {
"year": 2000,
"country": "Madagascar",
"country_id": 847,
"indicator": "Net Income - National Currency (millions)"
}, {
"year": 2005,
"country": "Madagascar",
"country_id": 847,
"indicator": "Net Income - National Currency (millions)"
}]
}]
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.