I am very new to algorithm and programming in general. I may require more explanation than an average fellow. Apologies in advance.
My aim is to Create a function that returns a number, based on the string provided. I have been told that this can be done using loops. I believe my errors lies in the if statement. However, cant seem to figure it out. I would be glad if somebody could help.
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]
}
}
}
}
Essentially what you're looking to do is get the index of the input s in your str array, and return the item at the same index in your int array. You could accomplish this with just the one loop:
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]
}
}
}
Of course, this is reliant upon the order of values matching up in your str and int arrays.
Working Demo :
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!');
Actually, You dont need loop also. You can rearrange the strings and return the index based on the arrangement of the word in array.
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"))