【发布时间】:2017-01-29 22:38:42
【问题描述】:
我需要做一个函数,它接受一个数字并返回它的数字之和,如果数字是负数,那么在添加数字时第一个数字应该被认为是负数,这就是我所拥有的:
var arrx = [];
var oper;
var others = 0;
function sumDigits(num) {
// your code here
var y = num.toString();
var c = y.split("");
c.forEach((h) => arrx.push(Number(h)) );
if (num < 0){
oper = -arrx[0];
for (var z = 1; z < arrx.length; z++){
others += arrx[z];
}
return others + oper;
}
return arrx.reduce((a,b) => a+b);
}
sumDigits(1234);
当给定负数时,函数返回NaN,这是什么问题?
【问题讨论】:
-
当
c已经是一个时,为什么要将数字推送到数组中? -
我建议开发一种直接处理数字的算法,而不是将数字转换为字符串。你能想出一种从数字中获取个位的方法吗?除了个位数之外,您如何获得其余数字?
标签: javascript arrays sum digits