一道阿里面试题(js)
写一个求和的函数sum,达到下面的效果
// Should equal 15 sum(1, 2, 3, 4, 5); //Should equal 0 sum(5, 'abc', -5); //Should equal 4 sum(1, true, 'a', 'D', 1, 'F', 1, 'w');
下面附上多种方法:
function sum(){ var add = 0; for(var i = 0; i < arguments.length; i++){ if(!isNaN(Number(arguments[i]))){ add += Number(arguments[i]); } } alert(add); } sum(1,2,3,4,5); sum(5,'asd',-5); sum(1, true, 'a', 'D', 1, 'F', 1, 'w');
var sum = function() { return [].slice.call(arguments).map(function(x) { return isNaN(Number(x)) ? 0 : Number(x); }).reduce(function(a, b) { return a + b; }); }
var sum = function(){ return [].reduce.call(arguments, function(a,b){return (parseFloat(+a)||0)+(parseFloat(+b)||0)}) }
评论中可附上你的方法哦。
后续我的博客将在我的个人网站 https://skyfi.github.io/ 上进行书写,cnblog更新会迟延,给你带来不便,很是抱歉。