What is the difference between .map, .every, and .forEach?

0x499602D2 picture 0x499602D2 · Sep 7, 2011 · Viewed 42.6k times · Source

I've always wondered what the difference between them were. They all seem to do the same thing...

Answer

gilly3 picture gilly3 · Sep 7, 2011

The difference is in the return values.

.map() returns a new Array of objects created by taking some action on the original item.

.every() returns a boolean - true if every element in this array satisfies the provided testing function. An important difference with .every() is that the test function may not always be called for every element in the array. Once the testing function returns false for any element, no more array elements are iterated. Therefore, the testing function should usually have no side effects.

.forEach() returns nothing - It iterates the Array performing a given action for each item in the Array.

Read about these and the many other Array iteration methods at MDN.