js中map()的使用详解

Posted 尔嵘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中map()的使用详解相关的知识,希望对你有一定的参考价值。

引入:

  有网友有如下困惑:

        map是数组的方法,有一个参数,参数是一个函数,函数中有3个参数

        参数1:item必须。当前元素的值

        参数2:index,可选。当前元素在数组中的索引值

        参数3:arr可选。当前元素属于的数组对象

        那这个作为map参数的函数是怎么被调用的呢

一、map()定义

javascript的Array中,它返回一个新的数组,数组中的元素为原始数组调用函数处理后的值。
请注意:
        map()不会对空数组进行检测
        map()不会改变原数组
二、语法:

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

参数详情:

function(currentValue, index, arr):必须。为一个函数,数组中的每个元素都会执行这个函数。其中函数参数:
    currentValue:必须。当前元素的的值。
    index:可选。当前元素的索引。
    arr:可选。当前元素属于的数组对象。
 
thisIndex:可选。对象作为该执行回调时使用,传递给函数,用作"this"的值。

三、本案例中,按照感知理解:

返回一个由原数组每个元素乘以2后返回的新数组。

四、学习map()源码:

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]

以上是关于js中map()的使用详解的主要内容,如果未能解决你的问题,请参考以下文章

js数组中foEach和map的用法详解 jq中的$.each和$.map

Nginx map 使用详解

Nginx map 使用详解

Nginx 之Map使用详解+案例

js数组中indexOf/filter/forEach/map/reduce详解

源映射(Source Map)详解