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