JSFiddle - React, Tailwind, and code Playground

JavaScript

var grid = [
  [0,0], [0,1], [0,2], [0,3],
  [1,0], [1,1], [1,2], [1,3],
  [2,0], [2,1], [2,2], [2,3],
  [3,0], [3,1], [3,2], [3,3]
]; 

var newGrid = [];
var rowLength = Math.sqrt(grid.length);
newGrid.length = grid.length

for (var i = 0; i < grid.length; i++)
{
    var x = i % rowLength;
    var y = Math.floor(i / rowLength);
    var newX = rowLength - y - 1;
    var newY = x;    
    var newPosition = newY * rowLength + newX;
    console.log(newPosition)
    newGrid[newPosition] = grid[i];
}

for (var i = 0; i < newGrid.length; i++)
{   
    $("body").append("[" + newGrid[i][0] + "," + newGrid[i][1] + "] ")
    if ((i % rowLength) == (rowLength - 1))
        $("body").append("<br>")
}