2017-09-27 72 views
1

我想创建一个嵌套的对象,这样
从三个数组转换三个阵列到嵌套对象

var obj; 
obj = [ 
    { 
     "a": { 
      "A" : "aA", 
      "B" : "aB", 
      "C" : "aC" 
     } 

    }, 
    { 
     "b": { 
      "A" : "bA", 
      "B" : "bB", 
      "C" : "bC" 
     } 

    }, 
    { 
     "c": { 
      "A" : "cA", 
      "B" : "cB", 
      "C" : "cC" 
     } 

    },  
] 


这样

var arr1 = ["a","b","c"] 
var arr2 = ["A","B","C"] 
var arr3 = [["aA","aB","aC"],["bA","bB","bC"], ["cA","cB","cC"]] 

是否有使用lodash一个简单的方法或ES6?我基本上使用另一个函数从arr1arr2生成arr3。但这在这里没有什么关系,但是如果我要创建这样的多个数据数组并且我想通过组合数组来生成类似JSON的对象,那么什么是方便的方法?有没有关于从几个数组创建多级嵌套对象的文档,可能多于3个数组?

我的努力...

arr1.forEach((item)=>{ 
    arr2.forEach((prop)=>{ 
     obj[item] = {} 
     obj[item][prop] = prop 
    }) 
}) 
+1

现在,我们知道你想要什么,但我们不知道,你做了什么让你的问题迎刃而解。 – Teemu

+0

我投票结束这个问题作为题外话,因为问题没有显示任何努力的迹象。这是一个要求,而不是一个问题陈述。 – Rajesh

+0

@Rajesh:出于这个原因,我们通常会使用“太宽泛”。 – Cerbrus

回答

0

试试这个:

var arr1 = ["a","b","c"]; 
    var arr2 = ["A","B","C"]; 
    var arr3 = [["aA","aB","aC"],["bA","bB","bC"], ["cA","cB","cC"]]; 
    var obj=[]; //initializing empty obj array 
    for (i=0;i<arr1.length;i++){ // loop for creating outer objects 
    var insideObj = {}, sampleObj={}; 
    for (j=0;j<arr2.length;j++) // loop for creating inner objects 
    insideObj[arr2[j]]=arr3[i][j]; // creating inner objects like {"A":"cA","B":"cB","C":"cC"} 
    sampleObj[arr1[i]]= insideObj; // assigning inner object as value of outer object 
    obj.push(sampleObj); // pushing outer object to my obj array 
} 
+0

希望现在清楚@Rajesh –