【发布时间】:2020-04-26 14:45:26
【问题描述】:
我的代码如下。有人能看到我犯的错误吗?
编写一个名为 sumDigits 的函数,该函数接受一个数字作为输入,并返回该数字的每个十进制数字的绝对值之和。例如:
sumDigits(10); // Returns 1
sumDigits(99); // Returns 18
sumDigits(-32); // Returns 5
Let's assume that all numbers in the input will be integer values.
function sumDigits(number) {
let numberstring = number.toString()
let numberarr = numberstring.split("")
let counter = 0
for(var i=0; i<numberarr.length; i++) {
if(typeof numberarr[i] === "number") {
console.log(numberarr[i])
let numbervalue = Number(numberarr[i])
console.log(numbervalue)
counter += numbervalue
} else if (typeof numberarr[i] !== "number"){
counter += 0
}
}
return counter
}
【问题讨论】:
-
你遇到了什么问题?
-
问题是
typeof numberarr[i] === "number"将永远是false,因为numberarr包含strings。 -
它没有通过第一个 if 语句...
-
你可以用isNaN(..)替换它
-
这能回答你的问题吗? Sum all the digits of a number Javascript
标签: javascript algorithm