2013-08-21 2 views
0

У меня есть массив, как показано нижеПреобразование вложенного массива простых Массивы

var arr = [["a", "b"],[1],[5,6]]; 

Я хотел бы, чтобы преобразовать его в обычный формат JSON, как показано ниже

arr = [ 
    ["a","a","b","b"] 
    [1,1,1,1] 
    [5,6,5,6] 
] 

Логика

Под каждым Элемент первого элемента массива все элементы являются подэлементами, под следующими каждым элементом массива из [1], [5,6] являются вспомогательные элементы

a->1->[5,6]
b->1->[5,6]

, если var arr = [["a", "b"],[1,2],[5,6]]; затем

a->[1]->[5,6]
a->[2]->[5,6]

, как то же самое с элементом б также. Я поражен, как я не знаю, как поступить

+0

, если она должна быть как 'а-> 1-> [5,6], b-> 1 -> [5,6] ', то ваш последний массив будет' [[5,6], [5,6]] ', поскольку' [a, b] '=' [ [1], [1]] '=' [[5,6], [5,6]] ' – rps

ответ

1

Как это ?:

var arr = [["a", "b"],[1],[5,6]]; 

var convert2PlainArray = function(array){ 
    var totalLength = 1, 
     plainArray = []; 
    for(var i=0;i<array.length; i++){ 
     totalLength*=array[i].length; 
    } 
    for(var i=0;i<array.length; i++){ 
     var currentElementLength = totalLength/array[i].length, 
      tempArray = []; 
     for(var e=0;e<array[i].length; e++){ 
      for(var l=0;l<currentElementLength; l++)tempArray.push(array[i][e]); 
     } 
     plainArray.push(tempArray); 
    } 
    return plainArray; 
} 

alert(JSON.stringify(convert2PlainArray(arr))); 

проверить его на скрипку: http://jsfiddle.net/GMJzW/

+0

спасибо за ответ, но в ответе последний элемент массива должен быть [5,6,5,6] вместо [5,5,6,6] – Reddy

Смежные вопросы