Javascript 如何从数组中获取项并按正确顺序嵌套它们?

Javascript 如何从数组中获取项并按正确顺序嵌套它们?,javascript,arrays,node.js,json,object,Javascript,Arrays,Node.js,Json,Object,所以我不能解决这个问题。我有以下阵列: var array1 = [ USA, Georgia, Atlanta ] var array2 = [ USA, New York ] 这就是我想要的: { "counties": [ { "name": "USA", "id": "1", "children": [ { "name

所以我不能解决这个问题。我有以下阵列:

var array1 = [
USA,
Georgia,
Atlanta
]

var array2 = [
USA,
New York
]
这就是我想要的:

{
    "counties": [
        {
            "name": "USA",
            "id": "1",
            "children": [
                {
                    "name": "Georgia",
                    "id": "1.1",
                    "parentId": "1",
                    "children": [
                        {
                            "name": "Atlanta",
                            "id": "1.1.1",
                            "parentId": "1.1"
                        }
                    ]
                },
                {
                    "name": "New York",
                    "id": "1.2",
                    "parentId": "1"
                }
            ]
        }
    ]
}

诀窍是不要有任何重复,如果在同一级别上有任何重复,则应将它们合并为一个,并将两个的孩子都放在下面。比如例子中的美国

我有了这个
转换
方法。在参数中传递任意数量的数组:

演示:

常量数组1=[
“美国”,
“格鲁吉亚”,
“亚特兰大”
]
常数数组2=[
“美国”,
“纽约”
]
常量转换=(…数组)=>{
常量结果=[];
forEach(数组=>{
让节点=结果;
让parentID=“”
array.forEach(项=>{
const current=node.find(c=>c.name==item);
如果(当前){
node=current.children
}否则{
常数newNode={
名称:项目,
儿童:[],
id:parentID==''(节点.长度+1)+'':parentID++.+(节点.长度+1),
父ID
};
parentID=newNode.id;
node.push(newNode);
node=newNode.children
}
})
})
返回{县:结果}
}
常量结果=变换(array1,array2);
控制台日志(结果);
// {
//“县”:[
//         {
//“名称”:“美国”,
//“id”:“1”,
//“parentID”:“,
//“儿童”:[
//                 {
//“姓名”:“格鲁吉亚”,
//“id”:“1.1”,
//“parentID”:“1”,
//“儿童”:[
//                         {
//“姓名”:“亚特兰大”,
//“id”:“1.1.1”,
//“家长ID”:“1.1”,
//“儿童”:[]
//                         }
//                     ]
//                 },
//                 {
//“名称”:“纽约”,
//“儿童”:[…],
//“id”:“2”,
//“父ID”:”
//                 }
//             ]
//         }
//     ]

//}
您想在哪里使用普通JavaScript或来自NodeJs的响应来实现此类对象?到目前为止您尝试了什么?@PHPnoob我尝试过的最接近的事情是通过数组循环并将项推送到“国家”,但我不知道如何将项递归地嵌套到子数组中。这回答了您的问题吗@Soham Lawar——Kito提出的shape json模块看起来非常有趣。我会安装并试用,也许这就是解决方案。真好!非常感谢!