我在尝试将整数拆分为带负数的数字时遇到问题 让我们说-88将它们转换为字符串伤口[ - ,8,8] 我的目标是删除' - '并添加两个数字以获得16但问题是否定
这是我的代码:
function sumDigits(number) {
var digits = (""+number).split("");
var sum = 0;
for( var i = 0; i < digits.length; i++){
var test = parseInt(digits[i]);
sum = sum + test;
}
return sum;
}
答案 0 :(得分:2)
您在寻找数字的绝对值吗?也许这会奏效。
function sumDigits(number) {
number = Math.abs(number);
答案 1 :(得分:1)
这适用于-88:
var digits =number + "";
var sum = 0;
for( var i = 0; i < digits.length; i++){
var test = parseInt(digits[i]);
if(!isNaN(test))
sum = sum + test;
}
}
答案 2 :(得分:1)
function sumDigits(number) {
number = (number < 0) ? number*-1 : number;
var digits = (""+number).split("");
var sum = 0;
for( var i = 0; i < digits.length; i++){
var test = parseInt(digits[i]);
sum = sum + test;
}
return sum;
}
答案 3 :(得分:1)
只需在功能开头添加
if (number < 0) {
number *= -1;
}
至少在另一个答案中提到
number = Math.abs(number);
也可以使用
答案 4 :(得分:1)
快速而肮脏:
function sumDigits(number){
number=(number<0)?-number:number;
return (number+"").split("").reduce(function(o,n){ return o*1+n*1 },"0");
}