组合多个数组以生成一个修改过的数组

时间:2014-03-11 18:30:24

标签: javascript arrays multidimensional-array google-visualization

我想要使用四个数组合并修改。我想在谷歌可视化columnChart中使用它们。这是他们最初的情况。

var arrayOne = [1, 2, 3, 4, 5, 6];
var arrayTwo = [2, 3, 4, 5, 6, 7];
var arrayThree = [3, 4, 5, 6, 7, 8];
var arrayFour = ['one', 'two', 'three', 'four', 'five', 'six'];

我希望将它们转换为列表。使用来自arrayFour的文本在新arra的第一个位置,使用来自每个数组的相对索引来创建具有六个数组的多维数组;每个数组中数字的数字顺序没有任何意义,但表示整数。

var allArray = [['one', 1, 2, 3],
['two', 2, 3, 4],
['three', 3, 4, 5],
['four', 4, 5, 6],
['five', 5, 6, 7],
['six', 6, 7, 8]];

2 个答案:

答案 0 :(得分:0)

可能有一些更快的方法,但这是最直接的方法:

var arrayOne = [1, 2, 3, 4, 5, 6];
var arrayTwo = [2, 3, 4, 5, 6, 7];
var arrayThree = [3, 4, 5, 6, 7, 8];
var arrayFour = ['one', 'two', 'three', 'four', 'five', 'six'];
var arrayLength = arrayOne.length;

var arrayOutput = [];

for(var i = 0; i < arrayLength; i++)
{
    arrayOutput.push([
        arrayFour[i],
        arrayOne[i],
        arrayTwo[i],
        arrayThree[i]
    ]);
}

console.log(arrayOutput);

答案 1 :(得分:0)

var arrays = [arrayFour, arrayOne, arrayTwo, arrayThree];
var maxLen = Math.max.apply(null, arrays.map(function(currentItem) {
    return currentItem.length;
}));
var result = [];
for (var i = 0; i < maxLen; i += 1) {
    var tempArray = [];
    for (var j = 0; j < arrays.length; j += 1) {
        tempArray.push(arrays[j][i]);
    }
    result.push(tempArray);
}
console.log(result);

<强>输出

[ [ 'one', 1, 2, 3 ],
  [ 'two', 2, 3, 4 ],
  [ 'three', 3, 4, 5 ],
  [ 'four', 4, 5, 6 ],
  [ 'five', 5, 6, 7 ],
  [ 'six', 6, 7, 8 ] ]