如何使用jQuery在child_array.cat_parent_id == parent_array.cat_id
上合并以下两个数组?
parent_array:
[{
"cat_name" : "Fruit",
"cat_id" : 77
}, {
"cat_name" : "Vegetables",
"cat_id" : 221
}]
我想将child_array合并到parent_array中:
[{
"cat_name" : "Bananas",
"cat_id" : 79,
"cat_parent_id" : 77
},{
"cat_name" : "Apples",
"cat_id" : 80,
"cat_parent_id" : 77
}, {
"cat_name" : "Carrots",
"cat_id" : 222,
"cat_parent_id" : 221
}]
这就是我希望输出的样子:
[{
"cat_name" : "Fruit",
"cat_id" : 77,
"cat_children": [
{
"cat_name" : "Bananas",
"cat_id" : 79
},
{
"cat_name" : "Apples",
"cat_id" : 80
}
]
}, {
"cat_name" : "Vegetables",
"cat_id" : 221,
"cat_children": [
{
"cat_name" : "Carrots",
"cat_id" : 222
}
]
}]
答案 0 :(得分:0)
你不一定需要jQuery才能这样做......只需编写一些嵌套循环并进行一些检查。您的JSON结构可以进行大大优化以实现此目的,但以下功能将以它的方式实现:
function merge(_parent,_children){
var result = _parent;
for(x in _children){
var parentID = _children[x].cat_parent_id;
for(y in _parent){
if(_parent[y].cat_id == parentID){
if(!result[y].cat_children){
result[y].cat_children = [];
}
result[y].cat_children.push(_children[x]);
}
}
}
return result;
}