tengo una matriz de JavaScript de objetos como esto:¿Cómo obtener el índice de un objeto dentro de una matriz de objetos?
box[0] = {...}
box[1] = {...}
box[2] = {...}
...
box[499] = {...}
Este objetos son generados por el mismo constructor y se añaden a la matriz dentro de un bucle. Los objetos tienen métodos en el prototipo que necesitan saber Índice del objeto en la matriz para hacer sus cosas. Actualmente lo que estoy haciendo es establecer una propiedad llamada id
dentro de cada objeto cuando creo que dentro del bucle, igual al índice de matriz. Algo como esto:
box[i].id = i;
Sin embargo no estoy totalmente satisfecho con esto, porque cada vez que vuelvo a solicitar la matriz mediante sort()
que tiene que ejecutar un bucle para actualizar los id
propiedades con los nuevos valores de índice.
Mi pregunta es si hay una manera de saber dentro de un objeto es índice en la matriz, sin tener que establecer la propiedad de identificación, espero que pueda ayudarme.
Gracias de antemano.
Creo que si los métodos del objeto necesitan saber el índice de su objeto, que no pertenecen a los objetos. Pertenecen en una instancia singleton o en la matriz. – staticsan
Vea la buena respuesta de patrick. Este tipo de acoplamiento conduce invariablemente a muchas fallas; el caso señalado es solo la "punta" del problema. Tal vez haya una solución factible para una pregunta diferente (pero relacionada). –