He estado tratando de crear una función que verifique si un usuario ya hizo clic en algún tipo de objeto. Para hacer esto, estoy guardando todos los objetos en los que se hizo clic correctamente en una matriz llamada "clic". Luego, cada vez que el usuario hace clic en la pantalla, quiero verificar si el usuario no volvió a hacer clic en el mismo objeto. Así que traté de usar la función .some. Cuando un usuario hace clic en la pantalla, la función .some verifica toda la matriz si el usuario está tratando de hacer clic en las mismas coordenadas que antes. Excepto, debido a que la matriz consta de múltiples entradas de datos por objeto, la función .some regresa después de hacer clic en dos objetos siempre verdaderos. Sospecho que esto se debe a que el nombre del objeto ("estrellas" en este caso) siempre es el mismo, por lo que está presente en la matriz al hacer clic en el segundo objeto.
Salida sin procesar de un solo objeto en la matriz:
[Star] { "x": 285, "y": 1000, "dx": 0, "dy": 0, "radius": 30, "minRadius": 30, "ring": { "x": 1650, "y": 350, "radius": 30, "initialRad": 30, "radiusTarget": 45, "counted": false }, "color": "#FF0000" }]
Necesito la función .some para verificar si las coordenadas de la entrada de los usuarios se corresponden con las coordenadas de los objetos ya seleccionados (almacenados en la matriz "clic"). Por ahora probé esto:
isClicked = clicked.some(function(e){ return e = click.x; }); console.log(isClicked);Donde, en este caso, los valores de clic se generan a partir de la entrada de los usuarios. Es la primera vez que trato de conseguir algo de trabajo. Intenté leer la documentación, pero eso no me ayudó más. ¡Ojalá alguien aquí pueda!
TL; dr: .Alguna función tiene que devolver verdadero cuando un usuario ya hizo clic en un objeto comparando una matriz con objetos previamente seleccionados con las coordenadas activas en las que el usuario hace clic. Excepto que la función .some siempre devuelve verdadero, lo que sospecho es porque el nombre de los objetos es siempre el mismo.