Difference between each and map in jquery

$.map$.each
map method can be used as an iterator.each method is an immutable iterator
Returns a new arrayReturns the original array
The order of callback arguments - element, index.
$.map(elems, function () { element, index }, arg)
The order of callback arguments - index, element.
$.each(elems, function () { index, element }, arg)
Does not have a way to terminate the iterationReturn false to terminate the iteration

Example : Notice that the callback arguments in the each method are the reverse of the callback arguments in the map function. Also notice that map returns a new array where as each method returns the original array. This proves the point that each method is an immutable iterator where as map is not.

$(document).ready(function () {
    var intArray = [1, 2, 3, 4, 5];

    function functionA(index, element) {
        return element * 5;
    }

    function functionB(element, index) {
        return element * 5;
    }

    var result1 = $.each(intArray, functionA);
    var result2 = $.map(intArray, functionB);

    document.write('each = ' + result1);
    document.write('<br/>')
    document.write('map = ' + result2);
});

Output : 
Difference between each and map in jquery 

Example : Notice that each method terminates the iteration when the element value is 3. The values 3, 4 and 5 are not written to the document. With map method we are not able to break the iteration. When the element value is 3, map method returns false and then continues writing 4 and 5 to the document.

$(document).ready(function () {
    var intArray = [1, 2, 3, 4, 5];

    $.each(intArray, function (index, element) {
        if (element == 3)
            return false;

        document.write(element + ',');
    });

    document.write('<br/>');

    $.map(intArray, function (element, index) {
        if (element == 3)
            return false;

        document.write(element + ',');
    });
});

Output :  
jquery map vs each 

Comments

Popular posts from this blog

Automatically send Birthday email using C#.Net

Drag and Drop multiple File upload using jQuery AJAX in ASP.Net using C# and VB.Net