Thanks for pointing that out. This seems like a gray area. I don't know how I got under the impression that forEach mutates the original array items, maybe it was this post I looked up as I was writing the post. It's not entirely clear to me whatforEach actually returns if I ran it on an array its own.
I have around the web read general opinions that forEach iterates straight through arrays without breaking, and skips empty values, so that if one wanted to include a condition it would be easier to go with a for-loop. I don't have enough experience with forEach to tell, tbh
Well, actually if we execute your examples, we can notice that

forEachdoesn't mutate the original array.Thanks for pointing that out. This seems like a gray area. I don't know how I got under the impression that
forEachmutates the original array items, maybe it was this post I looked up as I was writing the post. It's not entirely clear to me whatforEachactually returns if I ran it on an array its own.I have around the web read general opinions that
forEachiterates straight through arrays without breaking, and skips empty values, so that if one wanted to include a condition it would be easier to go with a for-loop. I don't have enough experience withforEachto tell, tbhTo address your point "what forEach actually returns", the answer is "nothing".
forEachdoes not return a value, it is a void function.Thank you! That makes a lot of sense.