I am beginner who thought before doing the String Methods section of the course “You know what, let’s test my skills”. And boy my skills were tested. After I completed the challenge my jaw dropped, with the solution.
Had/Have this happened to y’all. Where you make something complicated and found out that there was a simple solution?
Solution

My Code

All the time and I’ve been programming professionally for 10+ years.
You’ll always find a better way to do something, however, there’s nothing wrong with what you initially came up with as it’s easy enough to understand because you’ve named your variables well and your logic is easy to follow along with. I would say that is far more important than coming up with technically clever solution that may be harder for someone else to understand!
so technically clever solution < long solution with good variable names?
a couple notes
- you should declare all variables with
letbefore you assign them, it’s good practice and you can enforce it by enabling strict mode - put;at the beginning of your function (or the entire script). Of course it’s only needed in browsers, strict mode is usually enabled by default in most tools. - try not to execute extra code if you can help it. For example, in this case only the final
reversedWordvalue matters, so you can do it at the end as opposed to on every iteration. Your code right now works in O(N^2) - with every new character in the string its speed decreases exponentially, but it should work in O(N) - a linear time. If you couldn’t createreversedWordat the end, you could still initialize it with an empty string and append some text with+=on every iteration, that still works in O(N) time as you don’t have to recreate the entire string on every iteration.
O(N^2) - with every new character in the string its speed decreases exponentially,
Try to be precise when teaching others. O(N^2) increases “quadratically” not exponentially. O(k^N) would be exponentially increasing with N.
(For point 1) Got it, from now on variables will be declared with
let. I don’t understand what is;maybe you can explain it.(For point 2) I was testing to see if
reversedWordprinted the desired output in the Console, forgot to remove it after finishing the program. I also don’t understand what ‘O(N^2)’ and ‘O(N)’ is, but+=-ing an empty string is a great idea, why didn’t i think of that.
- you should declare all variables with

