Soy muy nuevo en algoritmos y programación en general. Puedo requerir más explicaciones que un compañero promedio. Disculpas de antemano.
Mi objetivo es crear una función que devuelva un número, según la cadena proporcionada. Me han dicho que esto se puede hacer usando bucles. Creo que mis errores radican en la declaración if. Sin embargo, parece que no puedo entenderlo. Me alegraría si alguien pudiera ayudar.
function word(s) { let str = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "zero"]; let int = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]; for (let j = 0; j < int.length; j++) { for (let i = 0; i < str.length; i++) { if (s === str[i]) { return int[j] } } } }Esencialmente, lo que está buscando hacer es obtener el índice de las entradas s su matriz str y devolver el elemento en el mismo índice en su matriz int . Podrías lograr esto con solo un bucle:
function word(s) { let str = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "zero"]; let int = [1,2,3,4,5,6,7,8,9,0]; for (let j = 0; j < int.length; j++){ if (s === str[j]){ return int[j] } } } Por supuesto, esto depende del orden de los valores que coinciden en sus matrices str e int .
Demostración de trabajo:
function getStringNumber(word) { let str = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "zero"]; let int = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]; for (let i = 0; i < str.length; i++) { if (word === str[i]) return int[i]; } } console.log(getStringNumber('nine') ?? 'No word found!');En realidad, no necesitas bucle también. Puede reorganizar las cadenas y devolver el índice en función de la disposición de la palabra en la matriz.
const str = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]; function word(s) { return str.indexOf(s); } console.log(word("five")) // In case you dont want to change order function word1(s) { const str = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "zero"]; const index = str.indexOf(s); return index < 9 ? index+1 : 0 } console.log(word1("five")) console.log(word1("zero")) // Other way get index ussing findIndex function word2(s) { return str.findIndex(item => item === s); } console.log(word2("five")) // Other using single loop function word3(s) { for (let i in str) { if (str[i] === s) return i; } // Incase not found return -1; } console.log(word3("five"))