js map方法的使用

2022-02-10 13:18:00 字數 1576 閱讀 3708

原型:   array.map(callback,[ thisobject]);

callback的引數類似:

.map(function(value, index, array) );

三個引數為:當前正在遍歷的元素, 元素索引, 原陣列本身.
示例:

["1", "2", "3"].map(returnint);// 返回[1,2,3]
function returnint(element)

1. 方法概述

map()方法返回乙個由原陣列中的每個元素呼叫乙個指定方法後的返回值組成的新陣列。

2. 例子

2.1 在字串中使用map

在乙個string上使用 map 方法獲取字串中每個字元所對應的 ascii 碼組成的陣列:

var map = array.prototype.map

var a = map.call("hello world", function(x) )

// a的值為[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]

2.2 易犯錯誤

通常情況下,map方法中的callback函式只需要接受乙個引數(很多時候,自定義的函式形參只有乙個),就是正在被遍歷的陣列元素本身。

但這並不意味著map只給callback傳了乙個引數(會傳遞3個引數)。這個思維慣性可能會讓我們犯乙個很容易犯的錯誤。

// 下面的語句返回什麼呢:

["1", "2", "3"].map(parseint);

// 你可能覺的會是[1, 2, 3]

// 但實際的結果是 [1, nan, nan]

// 通常使用parseint時,只需要傳遞乙個引數.但實際上,parseint可以有兩個引數.第二個引數是進製數.可以通過語句"alert(parseint.length)===2"來驗證.

// map方法在呼叫callback函式時,會給它傳遞三個引數:當前正在遍歷的元素, 元素索引, 原陣列本身.

// 第三個引數parseint會忽視, 但第二個引數不會,也就是說,parseint把傳過來的索引值當成進製數來使用.從而返回了nan.

/*//應該使用如下的使用者函式returnint

function returnint(element)

["1", "2", "3"].map(returnint);

// 返回[1,2,3]

*/

以上摘自網路,由此可以寫出乙個小demo,比如格式化日期字串:

function formattime() ;

function formatnumber(n)

最終結果格式:"2017/05/19 00:37:20"

js map 和forEach 的區別

一 相同點 1.都是迴圈遍歷陣列中的每一項 2.每次執行匿名函式都支援三個引數,引數分別為item 當前每一項 index 索引值 arr 原陣列 3.匿名函式中的this都是指向window 4.只能遍歷陣列 二 不同點 1.map 會分配記憶體空間儲存新陣列並返回,foreach 不會返回資料。...

JS Map 和 List 的簡單實現。

map物件,實現map功能 介面 size 獲取map元素個數 isempty 判斷map是否為空 clear 刪除map所有元素 put key,value 向map中增加元素 key,value remove key 刪除指定key的元素,成功返回true,失敗返回false get key 獲...

JS Map 和 List 的簡單實現

map html view plain copy map物件,實現map功能 介面 size 獲取map元素個數 isempty 判斷map是否為空 clear 刪除map所有元素 put key,value 向map中增加元素 key,value remove key 刪除指定key的元素,成功返...