I am writing a program where I want the following result:
[ ‘ROBOT’,
‘OBOTR’,
‘BOTRO’,
‘OTROB’,
‘TROBO’ ]
Now I have:
[ ‘robotr’, ‘obotr’, ‘botr’, ‘otr’, ‘tr’ ]
Where am I going wrong? Here is my code:
function scrollingText(word) {
word = word.toUpperCase();
let arr = [];
for (let i = 0; i < word.length; i++) {
arr.push(word[i] + word.slice(i + 1) + word[0]);
}
return arr;
}
console.log(scrollingText('robot'));
>Solution :
You need to update word in each iteration, and not merely slice the same word repeatedly. Here is my snippet:
function scrollingText(word) {
let arr = [word.toUpperCase()]; // storing original word
let wordLength = word.length;
for (let i = 0; i < wordLength - 1; i++) { // iterating for one less than the string length, in this case, from 0 to 3
word = word.slice(1) + word[0] // <<-- update word in every iteration
arr.push(word.toUpperCase());
}
return arr;
}
console.log(scrollingText('robot'));
// OUTPUT:
// [ "ROBOT", "OBOTR", "BOTRO", "OTROB", "TROBO" ]