JavaScript Array.map(parseInt) 錯誤解決方案
出版:2017-05-31
如果我想轉換數組裡面的字符串為數字的話,很自然就會想到 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
.map(parseFloat)
,因為它只接收一個參數。var c = a.map(parseFloat);
.map(Number)
var d = a.map(Number);
.map(num => parseInt(num))
var e = a.map(num => parseInt(num));
Calpa 是一個四天工作的系統架構師,日常幫助客戶構建一站式網站應用,手機應用,雲端架構。
2023 年 9 月,Calpa 收到來自國內外不同 Web3 團隊的邀請,參加韓國的 KBW 2023 和新加坡的 TOKEN 2049 活動。十二月份,Calpa 將參加台北區塊鏈週的 Hackathon 比賽。
Calpa 擅長運用各種前沿技術,包括 TypeScript、React.js 和 Vue.js,開發具有 Responsive Web Design 的網站。另外,他透過運用 aws-cdk 和 TypeScript 技術的融合,實現了基於雲端的「基礎即代碼」(Infrastructure as Code)部署策略,建立了多套高效且具有可伸縮性的全端架構。
同時,Calpa 積極參與各個社群,活躍於香港和台灣的開源社區,分享前沿知識。他曾在 2019 年的香港開源大會中擔任重要講者,為聽眾提供寶貴的工作經驗和深刻見解。此外,Calpa 在 GitHub 上公開分享了個人博客程式碼,已獲得超過 300 顆星星和 60 個分支。
如果您對系統架構有任何問題,或需要進一步交流,請隨時聯絡 Calpa,他非常歡迎討論。