[英]Sum of Digits using tostring and number methods javascript
有人可以解釋我在這個問題上做錯了什么嗎? 我想使用toString
和Number
方法添加num
變量的總和。 我首先將num
轉換為字符串num = '12345'
。 然后,我遍歷字符串,將其轉換為數字並將其添加到總和中。
var num = 12345;
function sumDigits(num) {
var sumOfDigits = 0;
num.toString();
for(var i = 0; i < num.length; i++){
sumOfDigits += Number(num[i]);
}
return sumOfDigits;
}
您沒有將num.toString()
的結果分配給任何東西。
var num = 12345; function sumDigits(num) { var sumOfDigits = 0; num = num.toString(); for (var i = 0; i < num.length; i++) { sumOfDigits += Number(num[i]); } return sumOfDigits; } console.log(sumDigits(num));
更新:
您可以使用split,map和reduce拆分數組,將其映射為整數,然后使用reduce函數對整數求和。
如果您想將解析移入reduce中,則可以消除該映射,但是我想將步驟分開。
var num = 12345; function sumDigits(num) { var sumOfDigits = num .toString() .split('') .map(function(n) { return parseInt(n);}) .reduce(function(acc, val) { return acc + val; }, 0 ); return sumOfDigits; } var sum = sumDigits(num); console.log(sum)
我相信你可以使用這個:
var num = 12345;
function sumDigits(num) {
//empty variable
var str;
//check type of the incoming value
(typeof num == "string") ? str = num : str = num.toString();
//this is the same with above if you don't know how to use short handed if else
/*
if(typeof num == "string"){
str = num;
} else {
str = num.toString();
}
*/
//Array's split Method and a variable which u have create already
var arr = str.split(''), sumOfDigits = 0;
for(var i in arr){
//You should use parseInt() method.
sumOfDigits += parseInt(arr[i]);
}
//return the sum of the digits
return sumOfDigits;
};
console.log(sumDigits(num));
如果您將來有任何問題,請先搜索一下,然后在這里寫:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.