2016-08-02 83 views
-1

我无法将这个问题包裹起来。下面是我的阵列逻辑内置:将数组/对象的数组转换为JSON

array1 = [ [array2], [array3], [array4] ... [array17] ] 
array2 = [ ['obj1'], ['obj2'], ['obj3'] ... ['obj30'] ] 
... 
... 
obj1 = ({prop1 : 'string1'}, { prop2 : 'string2'}, {prop3 : 'string3'} ... {prop30 : 'string30'}) 
obj2 = ({prop1 : 'string1'}, { prop2 : 'string2'}, {prop3 : 'string3'} ... {prop30 : 'string30'}) 
obj3 = ({prop1 : 'string1'}, { prop2 : 'string2'}, {prop3 : 'string3'} ... {prop30 : 'string30'}) 
... 
... 
obj30 = ({prop1 : 'string1'}, { prop2 : 'string2'}, {prop3 : 'string3'} ... {prop30 : 'string30'}) 

我想把它压平成像一个JSON对象:

{"array1":[ 
    { "array2":[ 
     {"obj1":[ 
      {"prop1" : "string1", 
      "prop2" : "string2" 
      } 
     }] 
    }] 
]} 

这里是我想出了:

for (i=0; i < array1; i++) { 

    var count = 0 

    while (count < array1[0].length) { 
    var jsonObj = { 
     array[i] : { 
     array[count] : { 
      obj[count] : { 
      'prop1' : 'string1' 
      } 
     } 
     } 
    } 
    count++; 
    } 
} 
+0

请在问题本身中包含代码/ a [mcve]。让我们知道具体问题是什么/卡在哪里。使我们能够更轻松地为您提供帮助,并使问题与未来的访问者保持联系。 – Jeroen

+0

你的代码缺少至少一个'}'。请修复它错误的地方。 – acdcjunior

+0

或许值得看看underscorejs的flatten函数http://underscorejs.org/#flatten – haxxxton

回答

0

你可以推动所有responseData.res同时循环结束responses

secondRes.push.apply(secondRes, responseData.res) 

或合firstRes之后使用concat

var secondRes = firstRes.concat.apply([], firstRes); 
0

所以,问题是有点混乱。但是如果你想从一个对象数组中创建一个数组的数组,这就是你如何做到的。

secondArray=[]; 

firstArray.map((object, key) => { 

let innerArray = []; 

for (let prop in object){ 

    innerArray.push(object[prop]) 

} 

secondArray.push(newArray); 

});