我有一个像这样的数组
[
[
"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实现此目的的最佳方法是什么?
我使用了多个for循环来遍历数组但却无法解决它。
答案 0 :(得分: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 :(得分: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);
答案 2 :(得分:0)
听起来你正在做阵列压缩。这在函数式编程中非常常见,如果你已经使用了库或者不需要重新实现这些功能,那么在Underscore.js中甚至可以为你做这样的内置。
_.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]);
// => [["moe", 30, true], ["larry", 40, false], ["curly", 50, false]]