Básicamente, tengo este código en un bot de Discord que aparecerá en el chat general y dice "Adivina el número correcto del 1 al 10" y es un número aleatorio cada vez.
Entonces, lo que se supone que debe hacer este código es cada vez que se adivina un número incorrecto, actualizará la "línea de números" para que sea un poco obvio cuál es el número.
Ejemplo: Adivina los números 1, 4, 5 y 7.
La incrustación debería verse como
1 _ _ 4 5 _ 7 _ _ _ , pero lo que sucede es que no guarda todos los intentos, por lo que solo actualizará la inserción con el último número adivinado
_ _ _ _ _ _ 7 _ _ _ (así), entonces, ¿cómo puedo almacenar todas las respuestas adivinadas incorrectas para que funcionen como quiero?
código: https://www.toptal.com/developers/hastebin/rowexaketi.js
Puede tener una matriz con todas las conjeturas que salen mal. Cree esa matriz en un alcance que sea visible para su función, y luego use el método de inclusión para verificar si ese número se probó antes.
Ejemplo:
const triedNumbers = [5,9,10]; // Start it as empty array, this is just for testing const possibleValues = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Use reduce instead of mapping to transform the array into a string later const finalString = possibleValues.reduce((accumulated, current) => { if(triedNumbers.includes(current)) return `${accumulated}${current}`; return `${accumulated}_`; }, ''); console.log(finalString);Enlace para reducir documentos .
Un par de sugerencias: cambie los nombres de las variables de su código, tiene múltiples índices: index, index3, index4, lo que hace que sea realmente difícil leer y comprender cómo funciona su código. Además, si está creando variables que no se van a mutar más adelante, use const en lugar de let .