Tengo una matriz de objetos puntuales con parámetros x e y como:
this.points = [p1, p2, p3,..];Que aplano como una matriz 1D así:
this.coords = []; for(let p of this.points){ this.coords.push(px); this.coords.push(py); }La matriz de coordenadas es ahora:
this.coords = [p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, ...] Mi pregunta es la siguiente, me gustaría que las modificaciones de cualquiera de los arreglos afecten al otro. Porque en este momento, cuando hago una modificación en this.coords o this.points , el otro no se actualiza.
¿Hay alguna manera de hacer esto, o estoy pensando mal en esto y hay una guía general para codificar coordenadas que no conozco, sí?
Gracias
JavaScript tiene dos tipos de valores: valores de referencia y valores primitivos.
Los valores primitivos, como los números, se copian y la edición de la copia nunca influye en el original y viceversa. Debido a que sus coordenadas x e y son probablemente valores numéricos primitivos, esto no es posible.
Podría encapsularlos en valores de referencia, por ejemplo, utilizando matrices con 1 elemento.
const points = [{x: [1], y: [2]}, {x: [3], y:[4]}]; const flat = [points[0].x,points[0].y,points[1].x,points[1].y]; flat[0][0]+=9; console.log(points[0].x)Pero la pregunta es por qué quieres hacer eso en primer lugar. Si se trata de algún tipo de optimización de caché extrema, como crear su propio motor de juego comercial, cualquier tipo de método para sincronizar las dos estructuras de datos probablemente neutralizará con creces ese beneficio de optimización.