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)