首页 > 解决方案 > 如何求和、识别和返回 case '0' 和 '-' in

问题描述

function sum2(num) {
  let sum ;
  let str = String(num)
  for(let i = 0 ; i < str.length; i++){
  if(i === 0) {
    sum = parseInt(str[i]);
    
  } else {
    sum = sum + parseInt(str[i])
  }
  }
    return sum;
}
debugger;
let output = sum2(1148);
console.log(output); // --> 14 = 1 + 1 + 4 + 8

output = sum2(-316);
console.log(output); // --> 4 = -3 + 1 + 6

我需要判断 num 为 -316,num 为 0,但它会返回 'NaN'..

我应该怎么办..?

标签: javascriptif-statementsumreturn

解决方案


你需要照顾'-'(减号)

function sum2(num) {
  let sum = 0;
  const str = String(num)
  let multipler = 1;
  for (let i = 0 ; i < str.length; i++) {
    if (i === 0 && str[i] === "-") {
      multipler = -1;
    } else {
      sum += multipler * parseInt(str[i], 10);
      multipler = 1;
    }
  }
  return sum;
}

console.log(sum2(1148)); // --> 14 = 1 + 1 + 4 + 8
console.log(sum2(-316)); // --> 4 = -3 + 1 + 6


推荐阅读