JavaScript Array#map: index argument

前端 未结 3 1362
夕颜
夕颜 2021-02-02 06:15

My question is about the map method of arrays in JavaScript.

You can pass it a function that takes a second argument, the index of the current element of th

相关标签:
3条回答
  • 2021-02-02 06:22

    Sometimes the index of the element matters. For example, this map replaces every second element with 0:

    var a = [1, 2, 3, 4, 5, 6];
    var b = a.map(function(el, index) {
        return index % 2 ? 0 : el;
    });
    console.log(b);
    

    Output:

    [1, 0, 3, 0, 5, 0]
    
    0 讨论(0)
  • 2021-02-02 06:39

    Here is a description of of the map function:

    arr.map(callback[, thisArg])
    

    callback
    Function that produces an element of the new Array, taking three arguments:

    currentValue
    The current element being processed in the array.

    index
    The index of the current element being processed in the array.

    array
    The array map was called upon.

    The map function takes a callback function as argument (and not an index as argument, as originally stated in the question before it was edited). The callback function has an index as a parameter - the callback is called automatically, so you don't provide the index yourself. If you only need the current value, you can omit the other parameters.

    0 讨论(0)
  • 2021-02-02 06:41

    The index of the current item is always passed to the callback function, the only difference if you don't declare it in the function is that you can't access it by name.

    Example:

    [1,2,3].map(function(o, i){
        console.log(i);
        return 0;
    });
    
    [1,2,3].map(function(o){
        console.log(arguments[1]); // it's still there
        return 0;
    });
    

    Output:

    0
    1
    2
    0
    1
    2
    

    Demo: http://jsfiddle.net/Guffa/k4x5vfzj/

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