我正在尝试将垂直数组列表转换为水平数组,我不需要求助于原始列表,但实际上是在寻找一个公式,将行,列和数组大小视为变量功能。
解释这个问题的最好方法是显示原始数组以及如何在列中输出数据,以及按行输出的排序数组。
由于其他原因,我不能只在行中输出我的数据,我仍然需要在列中输出它,只排序成行。
1 5 9
2 6 10
3 7 11
4 8 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##
}
答案 0 :(得分:0)
这样的事情应该有效:
var cell = arr[ (i * columns + Math.floor(i/rows)) % arr.length ];
在您的情况下,columns
应为3
而rows
应为4