如何将平面JavaScript对象数组转换为嵌套的分层JSON结构?
我需要转换以下平面JavaScript对象数组:如何将平面JavaScript对象数组转换为嵌套的分层JSON结构?,javascript,Javascript,我需要转换以下平面JavaScript对象数组: [ [ { "name": "child1" }, { "name": "parent1" }, { "name": "grandparent1" } ], [ { "name": "child2" }, { "name": "parent2" }, { "name": "grandparent2" } ] ] 进入以下嵌套的分层JSON结构: { "data": [ { "name": "chi
[ [ { "name": "child1" }, { "name": "parent1" }, { "name": "grandparent1" } ], [ { "name": "child2" }, { "name": "parent2" }, { "name": "grandparent2" } ] ]
进入以下嵌套的分层JSON结构:
{
"data": [
{
"name": "child1",
"parent": {
"name": "parent1",
"parent": {
"name": "grandparent1",
"parent": null
}
}
},
{
"name": "child2",
"parent": {
"name": "parent2",
"parent": {
"name": "grandparent2",
"parent": null
}
}
}
]
}
我如何用JavaScript实现这一点?好的
我想出了以下解决方案,似乎效果不错
var familiesArr = [ [ { "name": "child1" }, { "name": "parent1" }, { "name": "grandparent1" } ], [ { "name": "child2" }, { "name": "parent2" }, { "name": "grandparent2" } ] ];
var hierarchicalFamilies = createHierarchicalFamilies(familiesArr);
function createHierarchicalFamilies(familiesArr) {
var familyHierarchy = new Array();
for (var i=0; i<familiesArr.length; i++) {
var family = familiesArr[i];
familyHierarchy.push(addFamilyMember(family.slice()));
}
return familyHierarchy;
}
function addFamilyMember(family) {
if (family.length <= 0) {
return null;
}
var familyMemberNode = family[0];
var familyMember = new Object();
familyMember.name = familyMemberNode.name;
familyMember.parent = addFamilyMember(family.slice(1));
return familyMember;
}
var familiesArr=[[{“name”:“child1”},{“name”:“parent1”},{“name”:“祖父母1”}],{“name”:“child2”},{“name”:“parent2”},{“name”:“祖父母2”}];
var hierarchicalFamilies=createHierarchicalFamilies(familiesArr);
函数createHierarchycalFamilies(familiesArr){
var familyHierarchy=新数组();
对于(var i=0;IB,通过编写代码并向我们展示您首先尝试的内容。您可以使用简单的循环和/或数组原型方法(如reduce
(或其他)轻松实现这一点。如果数组的模式总是相同的,那么并不十分复杂
?请以正确的JSON格式发布输入,就像您对预期输出所做的那样。