如何旋转Javascript中表示为单个数组的4x8网格?

如何旋转Javascript中表示为单个数组的4x8网格?,javascript,Javascript,假设我有一个矩形4x8网格,在javascript中表示为一个值数组: var grid = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ]; 如

假设我有一个矩形4x8网格,在javascript中表示为一个值数组:

var grid = [
            0, 0, 0, 0,
            0, 0, 0, 0,
            0, 0, 0, 0,
            0, 0, 0, 0,
            0, 0, 0, 0,
            0, 0, 0, 0,
            0, 0, 0, 0,
            0, 0, 0, 0,    
];
如何将此阵列向左旋转90度,使其成为8x4栅格


我试过在其他问题上玩弄解决方案,比如这个问题:

但答案只涉及方形网格


任何帮助都将不胜感激。

我曾尝试过这个问题的解决方案,但它只适用于方形网格。我要补充一点:它不应该是一个二维数组吗?正如所定义的,这只是一行32个值,在javascript中表示为一个32个值的数组,是的。但我需要重新定位这些值,就像“视觉”表示向左旋转一样。i、 e第1行第4列的值变为第1行第1列的值。或者换句话说,右上角的值变为左上角的值。@Gordo在您为调查的问题提供的链接中,您只需更改“rowLength”以不使用总长度的平方根即可。让它成为一个自定义值,我认为它应该会起作用。@Aderis我试过了,但它似乎不起作用。太好了!现在我看到它被写下来了,这让人尴尬的简单。非常感谢。
var rows = 8;
var cols = 4;
var rotatedGrid = [];
var row = 0;
var col = 0;
for (col = cols - 1; col >= 0; col--)
{
    for (row = 0; row < rows; row++)
    {
        rotatedGrid.push(grid[row * cols + col]);
    }
}