天天看点

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]      

继续阅读