es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Uniendo cosas con Js

Ok, estoy haciendo un simulador de evolución y necesitan obtener comida para sobrevivir. Blah blah blah. Pero este splice no está funcionando y no sé cómo arreglarlo.

El código:

function track(blob, ob) {
    for (let i = 0; i < ob.length; i++) {
        const dist = Math.hypot(
            blob.x - ob[i].x, 
            blob.y - ob[i].y
        )

        if (dist - 20 - blob.size < 1) {
            blob.food++
            ob.splice(ob[i], 1)
        } else {
            const angle = Math.atan2(
                ob[i].x - blob.y,
                ob[i].y - blob.x
            )
            const velocity = {
                x: Math.cos(angle) / 2,
                y: Math.sin(angle) / 2
            }
            blob.velocity = velocity
        }
    }
}
Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema con la función splice en este código es que está utilizando incorrectamente el índice del objeto en el array como primer argumento en lugar del índice real. En otras palabras, en lugar de ob.splice(ob[i], 1), debería ser ob.splice(i, 1). Esto eliminará correctamente el objeto en el índice actual de la iteración del bucle.

Comments are closed.