我的代碼:
function string2int(s) {
var r=[];
var n;
r=s.split('');
n=r.reduce(function(x, y){
return (x*10+y);
console.log((x*10+y));
});
return n;
}
測試失敗
原因數組內是字符串:
arr=['1','2','3']
arr[0]*10=10;
但是
arr[0]+10=110;
所以失敗
知識點
數組內字符串類型的數字轉數字
arr[i]=arr[i]*1;
arr[i]=Math.abs(arr[i]);
arr[i]=(+arr[i]) ;
字符串轉數組:
var r=s.split('');
數組的map函數
function f(x){
......
}
var r=arr.map(f);
對arr數組的每一項進行f函數運算
數組的reduce函數
arr.reduce(function(x, y){
return x+y;
});
計算arr數組的累計和:arr[0]+arr[1]+...+arr[n]
注意:reduce的匿名函數參數必須是兩個(這裏的x,y)