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>
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:
Además, la variable “summa2” no se está actualizando correctamente.
Aquí está el código corregido: