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.

Estoy intentando crear un código en JavaScript que resuma todos los números entre 0 y 100 cuyo último dígito contenga un dígito seleccionado por el usuario entre 0 y 9.

Como dice el título, estoy tratando de hacer un JavaScript en el cual el usuario ingrese un dígito entre 0-9. Luego se sumarán todos los números cuyos dígitos finales contengan el dígito del usuario, es decir, si el usuario selecciona 7, se sumarán 7, 17, 27, 37, 47, 57, 67, 77, 87 y 97. Sin embargo, solo devuelve un 0. Por favor ayuda.

<html>
<head>
</head>
<body>
    <input type="text" id="write">
    <button id="knapp">¡Haz clic en mí!</button>
    <div id="box"></div>
<script>
document.getElementById("knapp").addEventListener("click", funcion);

var summa = 0;
var summa2 = 0;

function funcion(){

    let imported = document.getElementById("write").value;

    for(let i = 0; i < 100; i++){

        summa = i;

        if((i+'').indexOf(imported)){

            i += summa2;

            document.getElementById("box").innerHTML = summa2;
        }
    }   
}
</script>
</body>
</html>
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema con el código está en la declaración “if” dentro del bucle “for”. El método indexOf devuelve el índice de la primera aparición del valor especificado en la cadena (o -1 si no se encuentra). Por lo tanto, la declaración “if” debe comprobar si el valor devuelto por indexOf no es -1. Se puede corregir cambiando la declaración “if” a:

    if((i+'').indexOf(imported) !== -1){
    

    Además, la variable “summa2” no se está actualizando correctamente.

    Aquí está el código corregido:

    <html>
    <head>
    </head>
    <body>
        <input type="text" id="write">
        <button id="knapp">¡Haz clic en mí!</button>
        <div id="box"></div>
    
        <script>
            document.getElementById("knapp").addEventListener("click", funktion);
    
            function funktion(){
                let imported = document.getElementById("write").value;
                var summa2 = 0;
                for(let i = 0; i < 100; i++){
                    if((i+'').indexOf(imported) !== -1){
                        summa2 += i;
                    }
                }
                document.getElementById("box").innerHTML = summa2;
            }
        </script>
    </body>
    </html>
    

Comments are closed.