map加reduce自學遇到的坑

 

我的代碼:

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)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章