-1
高次関数を使っていくつかの練習問題に取り組んでいますが、私はこの問題を解決することができました。私は助けることができないが、このコードは醜いと思うが、それは最も雄弁ではないと思う。マップを組み合わせる方法はありますか?削減は、私が行ったよりもクリーンな方法ですか?さらに、私がここで使用できた他の方法や改良点はありますか?私はちょうど良くなるように探しています、そして、どんなフィードバックも評価されるでしょう。このコードをクリーンアップしてより雄弁に書くにはどうすればよいですか?
問題:数値を指定すると、「sumDigits」はすべての桁の合計を返します。数値が負の場合、最初の桁は負としてカウントされます。
function sumDigits(num) {
//create array of number char
var string = num.toString().split('');
//if first char is negative symbol let the first numeric element be negative
if (string[0] === "-") {
string[1] = '-' + string[1];
string.shift();
}
//convert string to int
var toInteger = string.map(function(x) {
return Number(x);
});
//get sum
return toInteger.reduce(function(sum, current) {
sum += current;
return sum;
})
}
sumDigits(-316);
はhttps://codereview.stackexchange.com/を試してみてください。スタックオーバーフローは** broken **コードです。 – Claies
他の方法https://stackoverflow.com/questions/38334652/sum-all-the-digits-of-a-number-javascript – wrangler