js自帶的 map() 方法全面了解

字號(hào):


    1. 方法概述
    map() 方法返回一個(gè)由原數(shù)組中的每個(gè)元素調(diào)用一個(gè)指定方法后的返回值組成的新數(shù)組。
    2. 例子
    2.1 在字符串中使用map
    在一個(gè) String  上使用 map 方法獲取字符串中每個(gè)字符所對(duì)應(yīng)的 ASCII 碼組成的數(shù)組:
    var map = Array.prototype.map
    var a = map.call("Hello World", function(x) { return x.charCodeAt(0); })
    // a的值為[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
    2.2 易犯錯(cuò)誤
    通常情況下,map 方法中的 callback 函數(shù)只需要接受一個(gè)參數(shù)(很多時(shí)候,自定義的函數(shù)形參只有一個(gè)),就是正在被遍歷的數(shù)組元素本身。
    但這并不意味著 map 只給 callback 傳了一個(gè)參數(shù)(會(huì)傳遞3個(gè)參數(shù))。這個(gè)思維慣性可能會(huì)讓我們犯一個(gè)很容易犯的錯(cuò)誤。
    // 下面的語句返回什么呢:
    ["1", "2", "3"].map(parseInt);
    // 你可能覺的會(huì)是[1, 2, 3]
    // 但實(shí)際的結(jié)果是 [1, NaN, NaN]
    // 通常使用parseInt時(shí),只需要傳遞一個(gè)參數(shù).但實(shí)際上,parseInt可以有兩個(gè)參數(shù).第二個(gè)參數(shù)是進(jìn)制數(shù).可以通過語句"alert(parseInt.length)===2"來驗(yàn)證.
    // map方法在調(diào)用callback函數(shù)時(shí),會(huì)給它傳遞三個(gè)參數(shù):當(dāng)前正在遍歷的元素, 元素索引, 原數(shù)組本身.
    // 第三個(gè)參數(shù)parseInt會(huì)忽視, 但第二個(gè)參數(shù)不會(huì),也就是說,parseInt把傳過來的索引值當(dāng)成進(jìn)制數(shù)來使用.從而返回了NaN.
    /*
    //應(yīng)該使用如下的用戶函數(shù)returnInt
    function returnInt(element){
     return parseInt(element,10);
    }
    ["1", "2", "3"].map(returnInt);
    // 返回[1,2,3]
    */
    參考 : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/map
    以上這篇js 自帶的 map() 方法全面了解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考