JS中map和parseInt的用法詳解
目錄
- map
- 參數(shù)
- 使用
- map和parseInt一起使用
map
map方法用于創(chuàng)建一個新的數(shù)組(不改變原數(shù)組),這個新數(shù)組由原數(shù)組中的每個元素,調(diào)用map中的回調(diào)函數(shù)處理后的返回值組成!
參數(shù)
map(callbackFn, thisArg)
callbackFn 回調(diào)函數(shù),數(shù)組中的每個元素都會調(diào)用該函數(shù),對數(shù)據(jù)進(jìn)行處理,處理完成的元素會被添加到新的數(shù)組中!callbackFn被調(diào)用時會傳入如下參數(shù):
- item 當(dāng)前正在處理的元素
- index 當(dāng)前正在處理的元素下標(biāo)
- arr 原數(shù)組
thisArg(可選) 用來修改this指向
使用
// 給數(shù)組中每一項增加一個label屬性!const arr = [{name:"測試1"},{name:"測試2"},{name:"測試3"}]const newArr = arr.map(item=>{ item.label = "通過map添加" return item})// 結(jié)果: newArr = [{name:"測試1",label: "通過map添加"},{name:"測試2",label: "通過map添加"},{name:"測試3",label: "通過map添加"}]
thisArg這個參數(shù)因為實際開發(fā)中基本都用的是箭頭函數(shù),所以用到第二個參數(shù)的情況并不多
const arr = [{name:"測試1"},{name:"測試2"},{name:"測試3"}]const newArr = arr.map(function(item){ console.log(this); // Number?{1}},1)
map和parseInt一起使用
正常情況下我們使用map回調(diào)函數(shù)中只會傳遞一個參數(shù)item,這就可能會出現(xiàn)下面這種問題:
console.log(["1", "2", "3"].map(parseInt));
期望輸出 [1, 2, 3]
, 而實際結(jié)果是 [1, NaN, NaN]
,這是因為parseInt在使用時,也只傳遞一個參數(shù)進(jìn)去,但實際上parseInt可以接收兩個參數(shù)(表達(dá)式,基數(shù)),所以如上代碼map在執(zhí)行回調(diào)時默認(rèn)傳遞了三個參數(shù)parseInt的第二個參數(shù)為下標(biāo),就導(dǎo)致了[1, NaN, NaN]
的結(jié)果!
# parseInt()
string(必選),要解析的字符串
radix(可選),表示要解析的數(shù)字的基數(shù)
radix介于 2 ~ 36 之間,如果省略該參數(shù)或其值為0,則數(shù)字將以10為基礎(chǔ)來解析,如果它以 0x或0X開頭,將以16為基數(shù),如果該參數(shù)小于2或者大于36,則parseInt()將返回NaN。
到此這篇關(guān)于JS中map和parseInt的用法詳解的文章就介紹到這了,更多相關(guān)JS map parseInt內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
