简体   繁体   中英

Javascript splitting negative number and removing negative

I have a problem while I'm trying to split an integer in to digits with negative number let's say -88 converting them to string wound be [-,8 ,8] and my goal is to remove the '-' and add both digits to get 16 but the problem is that negative

Here is my code:

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;
    }

Are you looking for the absolute value of the number? Maybe this would work.

function sumDigits(number) {
    number = Math.abs(number);

This works with -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;
      }
   }
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;
    }

Just add this at the start of your function

if (number < 0) {
    number *= -1;
}

As mentioned in at least one other answer

number = Math.abs(number);

will also work

Quick and Dirty:

function sumDigits(number){
    number=(number<0)?-number:number;
    return (number+"").split("").reduce(function(o,n){ return o*1+n*1 },"0");
}    

Fiddle

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM