While I was working to filter out unnecessary words from the storyWords array using the .filter-method, I at one point tried to use an if-/else-function as callback. The code seemed to work, but when I printed the betterWords array to the console I saw it still containing words I was supposed to have gotten rid of.
I have since looked at the video and I see the benefits of using the .includes-method. But I somehow still wonder why my first amateur try didn’t work out. (I.e., no error code was printed, but “extremely”, “actually” and “literally” still showed up in the filtered array.)
Anyone who can explain why that was?
link to code: https://gist.github.com/27c26496560c513995851614c6950ba1
If your code is able to determine true/false after looking at the first word, then what did it do with the rest of the words? Presumably not a whole lot. A loop that makes one iteration isn’t really a loop at all, there’s no looping going on.
If you meant to compare to each word in the list then you’ll need to do that before exiting your function and presumably combine the results of the comparisons in some way into one consolidated answer.
Tagging on to what @ionatan said, the
return keyword exits a loop, so I think what your code is doing is comparing each word in storyWords to ‘extremely’ (because that’s
unnecessaryWords). It returns either true or false, exits the
for loop, then moves on to the next word in storyWords. That means that the other words in
unnecessaryWords never get checked.
return keyword exits the loop? I did not know that! (Only knew of the
break keyword.) Thank you, both!