天天看點

js中map()的使用詳解

引入:

  有網友有如下困惑:

        map是數組的方法,有一個參數,參數是一個函數,函數中有3個參數

        參數1:item必須。目前元素的值

        參數2:index,可選。目前元素在數組中的索引值

        參數3:arr可選。目前元素屬于的數組對象

        那這個作為map參數的函數是怎麼被調用的呢

js中map()的使用詳解

一、map()定義

在JavaScript的Array中,它傳回一個新的數組,數組中的元素為原始數組調用函數處理後的值。

請注意:

        map()不會對空數組進行檢測

        map()不會改變原數組

二、文法:

array.map(function(currentValue, index, arr), thisIndex)      

參數詳情:

function(currentValue, index, arr):必須。為一個函數,數組中的每個元素都會執行這個函數。其中函數參數:
    currentValue:必須。目前元素的的值。
    index:可選。目前元素的索引。
    arr:可選。目前元素屬于的數組對象。
 
thisIndex:可選。對象作為該執行回調時使用,傳遞給函數,用作"this"的值。      
var arr = [1, 2, 3, 4, 5]
Array.prototype.myMap = function(fn){
    var len = this.length;
    var arr = [];
    for(var i = 0; i < len; i ++){
        arr.push(fn(this[i],i))
    }
    return arr;
}
var resultArrey = arr.myMap(function(item, index){
    return item * 2;
})
console.log(resultArrey); //[2,4,6,8,10]      

繼續閱讀