我有以下想要重新排列的对象,所以我可以传递给模板。需要帮助才能将其转换为以下格式
var nature = [
{
"type": "fruit",
"name": "apple",
"color": "red",
},
{
"type": "vegetable",
"name": "carrot",
"color": "orange",
},
{
"type": "fruit",
"name": "grape",
"color": "green",
},
{
"type": "vegetable",
"name": "tamato",
"color": "red",
},
];
这种格式
var nature = [{
"fruit": [
{
"type": "fruit",
"name": "apple",
"color": "red"
},
{
"type": "fruit",
"name": "grape",
"color": "green"
}
],
"vegetable": [
{
"type": "vegetable",
"name": "carrot",
"color": "orange"
},
{
"type": "vegetable",
"name": "tomato",
"color": "red"
}
]
}];
寻找实现它的最快方法。感谢您查看帖子。感谢帮助。
答案 0 :(得分:1)
打自然!
var goAgainstNature = function(oldNat) {
var newNat = {}, i;
for(i = 0; i < oldNat.length; i++) {
(newNat[oldNat.type] = (newNat[oldNat.type] || [])).push(oldNat[i]);
}
return [newNat];
};
答案 1 :(得分:1)
我认为这是对的
var goAgainstNature = function(oldNat) {
var newNat = {}, i;
for(i = 0; i < oldNat.length; i++) {
(newNat["'"+oldNat[i].type+"'"] = (newNat[oldNat.type] || [])).push(oldNat[i]);
}
return [newNat];
};