2017-09-27 117 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 –