js写一个求和函数,达到下面的效果
// Should equal 15
sum(1, 2, 3, 4, 5);
// Should equal 0
sum(5, null, -5);
// Should equal 10
sum('1.0', false, 1, true, 1, 'A', 1, 'B', 1, 'C', 1, 'D', 1, 'E', 1, 'F', 1, 'G', 1);
// Should equal 0.3, not 0.30000000000000004
sum(0.1, 0.2);
下面是我写的一个sum函数
function sum(...args){
let total = 0;
for(const arg of args){
let num = 0;
if(typeof arg === 'number' && !isNaN(arg)){
num = arg;
}else if(arg === null){
num = 0;
}else if(typeof arg === 'boolean'){
num = 0;
}else if(typeof arg === 'string'){
const parsed = parseFloat(arg);
num = isNaN(parsed) ? 0 : parsed;
}else {
num = 0;
}
total += num;
}
return parseFloat(total.toFixed(10));
}