1. 程式人生 > >在不使用JavaScript內建的parseInt()函式的前提下,利用map和reduce操作實現一個string2int()函式

在不使用JavaScript內建的parseInt()函式的前提下,利用map和reduce操作實現一個string2int()函式

在不使用JavaScript內建的parseInt()函式的前提下,利用map和reduce操作實現一個string2int()函式

題目出自廖雪峰老師的JavaScript教程:
把一個字串13579先變成Array——[1, 3, 5, 7, 9],再利用reduce()就可以寫出一個把字串轉換為Number的函式:

'use strict';
function string2int(s) {
    var strArr,intArr,number;//定義一個字元陣列、一個整型陣列和轉換後得到的結果
    //_2String函式將字串用分隔開
    function _2String
(s) { var str=s.split(''); return str; }; //_2Int函式將字串轉換為整數 function _2Int(strArr) { //_toInt函式將字元陣列轉換為整型陣列 function _toInt(strArr) { return +strArr; }; var arr=strArr.map(_toInt); return arr; }; //_2number函式將整型陣列還原為整數
function _2number(intArr) { var num=intArr.reduce(function (x,y) { return x*10+y; }); return num; }; strArr=_2String(s); intArr=_2Int(strArr); number=_2number(intArr); console.log(intArr); return number; }

我們用下面的程式碼來測試一下:

// 以下程式碼用於測試:
if (string2int('0') === 0 && string2int('12345') === 12345 && string2int('12300') === 12300) { if (string2int.toString().indexOf('parseInt') !== -1) { console.log('請勿使用parseInt()!'); } else if (string2int.toString().indexOf('Number') !== -1) { console.log('請勿使用Number()!'); } else { console.log('測試通過!'); } } else { console.log('測試失敗!'); }

執行結果:

0
1,2,3,4,5
1,2,3,0,0
測試通過!

這是我寫的第一篇部落格,記錄一下自己在學習JavaScript之中遇到的第一個難題。也用這一篇部落格來熟悉一下如何寫部落格。