Javascript - 透视或列化数组

时间:2014-01-20 11:00:59

标签: javascript equation

我正在尝试将垂直数组列表转换为水平数组,我不需要求助于原始列表,但实际上是在寻找一个公式,将行,列和数组大小视为变量功能。

解释这个问题的最好方法是显示原始数组以及如何在列中输出数据,以及按行输出的排序数组。

由于其他原因,我不能只在行中输出我的数据,我仍然需要在列中输出它,只排序成行。

[1,2,3,4,5,6,7,8,9,10,11,12]

1   5   9
2   6   10
3   7   11
4   8   12

[1,4,7,10,2,5,8,11,3,6,9,12]

1   2   3
4   5   6
7   8   9
10  11  12

我想要做的是循环原始数组,应用公式并根据公式从原始数组中选择正确的索引,麻烦的是我只是无法弄清楚some_formula应该是什么。 / p>

var cols = 3;
var rows = arr.length / cols;
var arr=[1,2,3,4,5,6,7,8,9,10,11,12];
for (i=0;i<arr.length;i++){
    var cell = arr[i] * ##some_formula, cols, rows##
}

1 个答案:

答案 0 :(得分:0)

这样的事情应该有效:

var cell = arr[ (i * columns + Math.floor(i/rows)) % arr.length ];

在您的情况下,columns应为3rows应为4