Tengo un objeto que recibe valores de coordenadas como este
Object{ [key]:[value], [key]:[value], }Cada clave es una coordenada x,y y cada valor es un booleano verdadero. Las coordenadas las genero a través de un programa que recibe un arreglo con valores 0 para verdadero y 1 para falso, un ancho y un alto.
Quiero generar cada tecla como una coordenada x, y dentro de ese objeto de esta manera:
Object{ [gridCoords([0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], 4, 4)]:true, }Entonces, mi función es algo como esto:
function gridCoords(data, height, width) { var obj = []; for (let row = 0; row < height; row++) { for (let col = 0; col < width; col++) { let key=`${row * 16},${col * 16}` let value= (data[row * height + col] === 1 ? true: false ) if (value){ obj.push(key) } } } return obj }Pero recibí esto:
{ 16,0,16,16,16,48,32,16,32,32: true }En vez de:
{ 16,0: true, 16,16: true, 16,48: true, 32,16: true, 32,32: true }¿Que puedo hacer?
Creo que quieres un objeto, no una matriz aquí:
function gridCoords(data, height, width) { var obj = {}; for (let row = 0; row < height; row++) { for (let col = 0; col < width; col++) { let key=`${row * 16},${col * 16}` let value= (data[row * height + col] === 1 ? true: false ) if (value){ obj[key] = value } } } return Object.keys(obj) }