如何连接两个对象
How to join two objects
我想知道如何使用JavaScript将parents.json与childrens.json连接起来。我需要得到结果.json
第一个对象:parents.json
{
"name": "ParentsLevel2",
"Level": 1,
"children": [
{
"name": "analytics",
"level": 2,
},
{
"name": "animate",
"level": 2
}
]
}
第二个对象:childrens.json
{
"name": "childrensLevel3",
"Level": 1,
"children": [
{
"name": "analytics1",
"level": 3,
"parent": "analytics"
},
{
"name": "analytics2",
"level": 3,
"parent": "analytics"
},
{
"name": "animate1",
"level": 3,
"parent": "animate"
},
{
"name": "animate2",
"level": 3,
"parent": "animate"
}
]
结果:result.json
{
"name": "Root",
"Level": 1,
"children": [
{
"name": "analytics",
"level": 2,
"children": [
{
"name": "analytics1",
"level": 3
},
{
"name": "analytics2",
"level": 3
}
]
},
{
"name": "animate",
"level": 2
"children": [
{
"name": "animate1",
"level": 3
}
]
}
]
}
我有这个:
var parent= parents.json
var child= childrens.json
var obj=parent["children"];
var obj2=child["children"];
for(i in obj){
for(c in obj2){
if(obj[i].name == obj2[c].parent){
//here is the push of the child associated to the parent, but how and
//also how create the result.json I need to create other object to put all together.
}
}
}
尝试此代码
var obj1 = { "name": "ParentsLevel2", "Level": 1, "children": [ { "name": "analytics", "level": 2, }, { "name": "animate", "level": 2 } ]
};
var obj2 = { "name": "childrensLevel3", "Level": 1, "children": [ { "name": "analytics1", "level": 3, "parent": "analytics" }, { "name": "analytics2", "level": 3, "parent": "analytics" }, { "name": "animate1", "level": 3, "parent": "animate" }, { "name": "animate2", "level": 3, "parent": "animate" } ]};
var obj = {};
obj [0] = obj 1;
obj [1] = obj 2;
console.log(obj);
解决方案:
var parentJson={
"name": "ParentsLevel2",
"Level": 1,
"children": [
{
"name": "analytics",
"level": 2,
"children":[]
},
{
"name": "animate",
"level": 2,
"children":[]
}
]
};
var sonJson={
"name": "ChildrenLevel3",
"Level": 1,
"children": [
{
"name": "analytics1",
"level": 3,
"parent": "analytics"
},
{
"name": "analytics2",
"level": 3,
"parent": "analytics"
}
]
};
//push a new object to the parentJson
//parentJson["children"].push("object to push");
//push a new object to the sonJson
//sonJson["children"].push("object to push");
//join
var objSon=sonJson["children"];
var oP=parentJson["children"];
for(p in oP){
for(s in objSon){
if(oP[p].name==objSon[s].parent){
alert("match");
oP[p].children.push(objSon[s]);
}
}
}
//create the result
var result=[];
var obj=oP;
for(i in obj){
var temp=[];
temp.push("FirstName");
temp.push(obj[i].name);
temp.push("Level");
temp.push(obj[i].level);
temp.push("Hijos")
temp.push(obj[i].children);
result.push(temp);
$("#D3").html(JSON.stringify(result));
$("#D3").prepend("result=")
jsfiddle解决方案
相关文章:
- javascript函数,它接受两个输入:一个对象和一个键,并返回对象中该键的相应值
- 正在更新mongod中两个对象内部的数组
- 添加两个对象以获取值的总和
- 如何使用javascript合并两个对象数组
- 别名或以其他方式合并两个具有不同名称的相同对象原型
- 如何对两个嵌套对象进行排序
- 在JavaScript中相等两个对象.在更改一时,秒会自动更改
- js字符串转换为具有两个值的对象
- 如何使用AngularJs比较两个对象的JSON
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 交换对象上两个属性的值
- Backbone relational无法实例化两个RelationalModel对象
- 如何在javascript中合并两个对象数组
- 删除两个独立对象中的属性,而不使用多余的删除语句
- JavaScript - 合并两个对象数组并根据属性值删除重复数据
- 有可能让两个变量指向同一个对象吗?(javascript)
- 使用Javascript对象为具有两个背景图像的DIV设置样式时出现问题
- 如何在Javascript中连接两个结构不同的对象
- 如何使用jQuery合并两个json对象
- 如何按对象两个值对对象数组进行排序