[removed] Difference between .forEach() and .map()

后端 未结 12 1894
余生分开走
余生分开走 2020-11-22 15:19

I know that there were a lot of topics like this. And I know the basics: .forEach() operates on original array and .map() on the new one.

I

相关标签:
12条回答
  • 2020-11-22 15:53

    One thing to point out is that foreach skips uninitialized values while map does not.

    var arr = [1, , 3];
    
    arr.forEach(function(element) {
        console.log(element);
    });
    //Expected output: 1 3
    
    console.log(arr.map(element => element));
    //Expected output: [1, undefined, 3];
    
    0 讨论(0)
  • 2020-11-22 15:54

    Map implicitly returns while forEach does not.

    This is why when you're coding a JSX application, you almost always use map instead of forEach to display content in React.

    0 讨论(0)
  • 2020-11-22 15:55

    They are not one and the same. Let me explain the difference.

    forEach: This iterates over a list and applies some operation with side effects to each list member (example: saving every list item to the database)

    map: This iterates over a list, transforms each member of that list, and returns another list of the same size with the transformed members (example: transforming list of strings to uppercase). It does not mutate the array on which it is called (although if passed a callback function, it may do so).

    References

    Array.prototype.forEach() - JavaScript | MDN

    Array.prototype.map() - JavaScript | MDN

    0 讨论(0)
  • 2020-11-22 16:01

    Difference between forEach() & map()

    forEach() just loop through the elements. It's throws away return values and always returns undefined.The result of this method does not give us an output .

    map() loop through the elements allocates memory and stores return values by iterating main array

    Example:

       var numbers = [2,3,5,7];
    
       var forEachNum = numbers.forEach(function(number){
          return number
       })
       console.log(forEachNum)
       //output undefined
    
       var mapNum = numbers.map(function(number){
          return number
       })
       console.log(mapNum)
       //output [2,3,5,7]
    

    map() is faster than forEach()

    0 讨论(0)
  • 2020-11-22 16:03

    The main difference that you need to know is .map() returns a new array while .forEach() doesn't. That is why you see that difference in the output. .forEach() just operates on every value in the array.

    Read up:

    • Array.prototype.forEach() - JavaScript | MDN
    • Array.prototype.map() - JavaScript | MDN

    You might also want to check out: - Array.prototype.every() - JavaScript | MDN

    0 讨论(0)
  • 2020-11-22 16:03

    forEach: If you want to perform an action on the elements of an Array and it is same as you use for loop. The result of this method does not give us an output buy just loop through the elements.

    map: If you want to perform an action on the elements of an array and also you want to store the output of your action into an Array. This is similar to for loop within a function that returns the result after each iteration.

    Hope this helps.

    0 讨论(0)
提交回复
热议问题