JavaScript 每日小知識 | .map()

map() 方法創(chuàng)建一個新數(shù)組,其結(jié)果是該數(shù)組中的每個元素調(diào)用一個提供的函數(shù)。

語法

const new_array = arr.map(callback[, thisArg])

參數(shù)

  • callback 生成新數(shù)組元素的函數(shù),使用三個參數(shù):
    • currentValue callback 的第一個參數(shù),數(shù)組中正在處理的當前元素。
    • index callback 的第二個參數(shù),數(shù)組中正在處理的當前元素的索引。
    • array callback 的第三個參數(shù),map 方法被調(diào)用的數(shù)組。
  • thisArg 可選的。執(zhí)行 callback 函數(shù)時 使用的this 值。

返回值

一個新數(shù)組,每個元素都是回調(diào)函數(shù)的結(jié)果。

描述

map 方法會給原數(shù)組中的每個元素都按順序調(diào)用一次 callback 函數(shù)。callback 每次執(zhí)行后的返回值(包括 undefined)組合起來形成一個新數(shù)組。 callback 函數(shù)只會在有值的索引上被調(diào)用;那些從來沒被賦過值或者使用 delete 刪除的索引則不會被調(diào)用。

callback 函數(shù)會被自動傳入三個參數(shù):數(shù)組元素,元素索引,原數(shù)組本身。

如果 thisArg 參數(shù)有值,則每次 callback 函數(shù)被調(diào)用的時候,this 都會指向 thisArg 參數(shù)上的這個對象。如果省略了 thisArg 參數(shù),或者賦值為 null 或 undefined,則 this 指向全局對象 。

map 不修改調(diào)用它的原數(shù)組本身(當然可以在 callback 執(zhí)行時改變原數(shù)組)。

使用 map 方法處理數(shù)組時,數(shù)組元素的范圍是在 callback 方法第一次調(diào)用之前就已經(jīng)確定了。在 map 方法執(zhí)行的過程中:原數(shù)組中新增加的元素將不會被 callback 訪問到;若已經(jīng)存在的元素被改變或刪除了,則它們的傳遞到 callback 的值是 map 方法遍歷到它們的那一時刻的值;而被刪除的元素將不會被訪問到。

demo

// 全部乘2
var mapArray = [1,2,3].map(function(x){
    return x * 2;
})
console.log(mapArray.join(','));
//2,4,6
// 重新整理數(shù)組中的對象
var jsonArray = [
    {
        key:'zhangsan',
        value:0,
    },{
        key:'lisi',
        value:1
    },{
        key:'wangwu',
        value:2
    }
];
console.log(jsonArray.map(function(x){
    var temp = {};
    temp[x.key] = x.value;
    return temp;
}));
// {
//     zhangsan:0,
//     lisi:1,
//     wangwu:2
// }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容