JavaScript Array.map(parseInt) 錯誤解決方案

作者: Calpa Liu
字數:190
出版:2017 年 5 月 31 日
#JavaScript#Frontend
如果我想轉換數組裡面的字符串為數字的話,很自然就會想到 `map` 和 `parseInt` 這兩個方法。但是用起來的時候卻不是我想要的結果。

如果我想轉換數組裡面的字符串為數字的話,很自然就會想到 map 和 parseInt 這兩個方法。但是用起來的時候卻不是我想要的結果。。。

var a = ["1", "2", "3", "4", "5"];

var b = a.map(parseInt);

console.log(b); // [1, NaN, NaN, NaN, NaN]

原因

如果我們細看 map 的參數,就會發現它的 callback 會有三個 arguments:currentValue, index 和 array。

對於 parseInt 來說,它會接收currentValue和 index,並用 index 作為 index 進制。。。

parseInt('1', 0); // OK => 1
parseInt('2', 1); // 不合法的進制。。。
parseInt('3', 2); // NaN, 二進制沒有 3
parseInt('4', 3); // NaN, 三進制沒有 4
parseInt('5', 4); // NaN, 四進制沒有 5

解決方法

  1. 用.map(parseFloat),因為它只接收一個參數。
var c = a.map(parseFloat);
  1. 用.map(Number)
var d = a.map(Number);
  1. 用.map(num => parseInt(num))
var e = a.map(num => parseInt(num));
關於 Calpa

Calpa 擅長使用 TypeScript、React.js 和 Vue.js 建立 Responsive Website。

他積極參與開源社區,曾在 2019 年的香港開源大會上擔任講者,提供工作經驗和見解。此外,他也在GitHub 上公開分享個人博客程式碼,已獲得超過 300 顆星星和 60 個分支的支持。

他熱愛學習新技術,並樂意分享經驗。他相信,唯有不斷學習才能跟上快速演變的技術環境。

熱門文章

最新文章

你擁有的 .eth 是誰?一鍵查出 ENS 背後地址
只要輸入一個 ENS 名稱,我們就能幫你查出它指向哪個以太坊地址,還能看到頭像。如果你常常看到 .eth 名稱卻不知道誰在背後,這個小工具幫得上忙。
水果切割圖生成器
圖片管理中心
管理圖片資源
原作(青山剛昌)產生器
一鍵創建原作(青山剛昌)的封面圖
Blurhash
一鍵創建 Blurhash
活動圖生成器
一鍵創建活動的封面圖
Facebook Quote
Facebook Quote
封面圖生成器
自動創建適合各種平台的文章封面圖
Wagmi Card
一鍵創建 Wagmi 的封面圖
IP 查詢
快速查詢和定位 IP 地址的地理位置和相關信息
Music Macro Language (MML) Studio
用程式語法編寫旋律,用音符構築想像
蒙特卡羅估算 π
使用蒙特卡羅方法演示 π 值的估算過程
日本色彩
探索和使用傳統日本色彩
PixAI Prompt 組合器|快速打造可用於 AI 繪圖的語言拼圖
使用 PixAI 卻不會寫 prompt?這個工具幫你一鍵組裝角色、表情、風格語彙,輸出高品質繪圖提示語句(Prompt),可直接貼入 PixAI 使用。適合插畫師、創作者、AI 新手與 VTuber 角色開發者。
Python 運行器
無需後端、無需登入,只需打開瀏覽器即可運行 Python 代碼(由 Pyodide 提供支持)
文字分類器
使用 MediaPipe TextClassifier 分類文字
紫微斗數 AI 排盤
紫微斗數排盤工具,輸入生日與時辰,自動生成完整命盤分析提示(Prompt)。結合最專業紫微理論與 AI 助力,助你深入解析性格、事業、財務與人際課題。免費使用,適合命理師及紫微愛好者。