2016-06-16 3 views
2

У меня есть массив массивов, как этотКак изменить формат массива в JavaScript

[ 
    [ 
    "text1", 
    "text2", 
    "text3", 
    "text4", 
    "text5" 
    ], 
    [ 
    "Rtext1", 
    "Rtext2", 
    "Rtext3", 
    "Rtext4", 
    "Rtext5" 
    ], 
    [ 
    "1", 
    "2", 
    "3", 
    "4", 
    "5" 
    ] 
] 

мне нужно, чтобы преобразовать его в следующем формате, используя JavaScript

[ 
    [ 
    "text1", 
    "Rtext1", 
    "1" 
    ], 
    [ 
    "text2", 
    "Rtext2", 
    "2" 
    ], 
    [ 
    "text3", 
    "Rtext3", 
    "3" 
    ], 
    [ 
    "text4", 
    "Rtext4", 
    "4" 
    ], 
    [ 
    "text5", 
    "Rtext5", 
    "5" 
    ] 
] 

Что является лучшим способом для достижения это использование JavaScript или jQuery?

Я использовал несколько циклов для циклического перемещения по массиву, но не смог его повесить.

+0

Просьба указать код вашей попытки. – str

ответ

1

Использование Array#forEach метод

var data = [ 
 
    [ 
 
    "text1", 
 
    "text2", 
 
    "text3", 
 
    "text4", 
 
    "text5" 
 
    ], 
 
    [ 
 
    "Rtext1", 
 
    "Rtext2", 
 
    "Rtext3", 
 
    "Rtext4", 
 
    "Rtext5" 
 
    ], 
 
    [ 
 
    "1", 
 
    "2", 
 
    "3", 
 
    "4", 
 
    "5" 
 
    ] 
 
]; 
 

 
var res = []; 
 

 
data.forEach(function(ele) { 
 
    ele.forEach(function(v, i) { 
 
    res[i] = res[i] || []; // define inner array if not defined 
 
    res[i].push(v); // push value to array 
 
    }) 
 
}); 
 

 
console.log(res);

1

Вот как это сделать ..

var x = [ 
 
    [ 
 
    "text1", 
 
    "text2", 
 
    "text3", 
 
    "text4", 
 
    "text5" 
 
    ], 
 
    [ 
 
    "Rtext1", 
 
    "Rtext2", 
 
    "Rtext3", 
 
    "Rtext4", 
 
    "Rtext5" 
 
    ], 
 
    [ 
 
    "1", 
 
    "2", 
 
    "3", 
 
    "4", 
 
    "5" 
 
    ] 
 
]; 
 

 
var a = x[0]; 
 
var b = x[1]; 
 
var c = x[2]; 
 

 
var finalAra = []; 
 
for(var i=0;i<a.length;i++){ 
 
    var temp = []; 
 
    temp.push(a[i]);temp.push(b[i]);temp.push(c[i]); 
 
    finalAra.push(temp); 
 
    } 
 

 

 
console.log(finalAra);

0

Похоже, что вы делаете массив проносясь. Это довольно часто встречается в функциональном программировании, и даже встраивается в Underscore.js, чтобы сделать это за вас, если вы уже используете библиотеку или не нуждаетесь в повторной реализации функций.

_.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]); 
// => [["moe", 30, true], ["larry", 40, false], ["curly", 50, false]] 
Смежные вопросы