js-將整數字符串解析成對應的數字
阿新 • • 發佈:2019-01-25
不要過分依賴API,如果可以的話,多想想如何手動解決問題。
在面試時遇到這麼個問題,大致描述如下:現有如下需求,需要將字串型別的數字轉換為數字型別,不適用parseInt函式實現?
例如:
輸入:"12345"
,
輸出:12345
/**
* @param {string} str
* @return {number}
*/
function parseStrToInt(str) {
// // 若存在parseInt(),則直接轉換
// if (Number.parseInt) {
// return Number.parseInt(str);
// }
let len = str.length;
let res = 0 ;
for (let i = 0; i < len; i++) {
// 遍歷字串,若存在charCodeAt(),則手動獲取字元對應的ASCII碼
// 0~9對應的ASCII碼為48~57
// 使用ASCII碼-48,再乘以倍數,結果累加,即是轉換後的數字型別
if (String.prototype.charCodeAt) {
res += (str[i].charCodeAt() - 48) * 10 ** (len - i - 1);
} else {
res += str[i] * 10 ** (len - i - 1);
}
}
return res;
}