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.

caso, interruptor y alcance en JavaScript

Estoy buscando ayuda. No estoy seguro de que los valores de velocidad, manejo y aceleración en los argumentos del método inferior no estén siendo afectados o utilizando los valores de actualización que se están agregando dentro del caso-switch. Quiero que la velocidad tome los cambios aplicados en el switch y luego se empuje la variable actualizada en los métodos siguientes. Espero que esté siendo claro. Mis valores siempre se mantienen en 10.

const addAttributes = (_element) => {let selectedElement = _element.layer;

    var speed = 10;
    var handling = 10;
    var acceleration = 10;

    switch (_element.layer.name) {

      case "1_grill":
        speed = speed + 100;

      case "Fiber1":
        handling = handling + 25;
        speed = speed + 25;

      case "yellow_headlights": // nombre del recurso sin #
        acceleration = acceleration + 35;
    }

    attributesList.push({
        trait_type: "Handling",
        Value: handling,
    });

    attributesList.push({
        trait_type: "Speed",
        Value: speed,
    });

    attributesList.push({
        trait_type: "Acceleration",
        Value: acceleration,
    });
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Según el código proporcionado, parece que la declaración “switch” está actualizando los valores de las variables declaradas dentro del ámbito de la función. Sin embargo, esos valores actualizados no se están pasando a los métodos que están debajo de la declaración “switch”.

    Para asegurar que los valores actualizados se estén utilizando en los métodos siguientes, puedes pasar los valores actualizados como argumentos a los métodos. Por ejemplo:

    attributesList.push({
      trait_type: "Manejo",
      Value: manejo,
    });
    
    attributesList.push({
      trait_type: "Velocidad",
      Value: velocidad,
    });
    
    attributesList.push({
      trait_type: "Aceleración",
      Value: aceleración,
    });
    
    actualizarMetodos(velocidad, manejo, aceleración); // llamar al método con los valores actualizados
    

    Donde actualizarMetodos es una función que recibe los valores actualizados como argumentos y realiza las actualizaciones necesarias.

    Nota: Es importante agregar declaraciones break; después de cada caso en la declaración “switch” para evitar un comportamiento no deseado de caída a través.

Comments are closed.