I just started the Udemy course “The Coding Interview Bootcamp” by Stephen Grider. I have five solutions below for the reverse string problem in Javascript. The first three solutions I was already comfortable with. I never actually used the for…of loop, however. Grider recommends using it when possible in interviews as there is less room for typos and simple errors than with a traditional for loop. I tried using the reduce() method before, but never completely understood it. Grider explains it as reducing an array into a single item or value. It makes a lot more sense now.
// SOLUTION 1 - using array.prototype.reverse() method
function reverse(str) {
return str.split("").reverse().join("");
}
// SOLUTION 2 - using traditional for loop
function reverse(str) {
const arr = str.split("");
const reverse = [];
for (let i=arr.length; i>=0; i--) {
reverse.push(arr[i]);
}
return reverse.join("");
}
// SOLUTION 3 - using array.prototype.forEach() method
function reverse(str) {
const arr=str.split("");
const reverse=arr.reverse();
const reverseReturn = []
arr.forEach(function(letter) {
reverseReturn.push(letter);
})
return reverseReturn.join("");
}
// SOLUTION 4 - using for...of loop
function reverse(str) {
let reversed = '';
for (let character of str) {
reversed = character + reversed;
}
return reversed;
}
// SOLUTION 5 - using array.prototype.reduce() method
function reverse(str) {
return str.split('').reduce((reversed, character) =>
character + reversed
,'');
}