Mi código es el siguiente
var points = 4; var yModifier = []; for (var i = 0; i <= points; i++) { yModifier.push([]); }; yModifier.forEach( (a, j) => { var start = j; var end = start + points; for (var i = start, k = 0; i <= end; i++, k++) { yModifier[j].push([k, i]) }; } ); console.log(yModifier);
que produce lo siguiente
0: [[0,0],[1,1],[2,2],[3,3],[4,4]] 1: [[0,1],[1,2],[2,3],[3,4],[4,5]] 2: [[0,2],[1,3],[2,4],[3,5],[4,6]] 3: [[0,3],[1,4],[2,5],[3,6],[4,7]] 4: [[0,4],[1,5],[2,6],[3,7],[4,8]]
¿Cómo puedo modificar el forEach
para que me dé lo siguiente?
0: [[0,0],[1,1],[2,2],[3,3],[4,4]] 1: [[0,-1],[1,0],[2,1],[3,2],[4,3]] 2: [[0,-2],[1,-1],[2,0],[3,1],[4,2]] 3: [[0,-3],[1,-2],[2,-1],[3,0],[4,1]] 4: [[0,-4],[1,-3],[2,-2],[3,-1],[4,0]]
var points = 4; var yModifier = []; for (var i = 0; i <= points; i++) { yModifier.push([]); }; yModifier.forEach( (a, j) => { var start = j; //a =0, start=0 var end = start + points; //a =1, end=360 for (var i = start, k = 0; i <= end; i++, k++) { yModifier[j].push([k, k - j]) }; } ); console.log(yModifier);
Parece que el patrón de valores es [col, col - row]
:
var points = 4; var yModifier = Array.from({ length: points + 1 }, function(_, row) { return Array.from({ length: points + 1 }, function(_, col) { return [col, col - row]; }); }); console.log(yModifier);