Sum digits of an integer: Difference between revisions
→{{header|JavaScript}}: Added an ES6 version.
(→{{header|JavaScript}}: Added an ES6 version.) |
|||
Line 2,243:
===Imperative===
<lang JavaScript>function sumDigits(n) {
n += ''
Line 2,261 ⟶ 2,260:
</pre>
===Functional
====ES5====
<lang JavaScript>(function () {
'use strict';
Line 2,289 ⟶ 2,288:
.join('\n');
})();</lang>
<pre>1 -> 1
</lang>▼
12345 -> 15
254 -> 11
fe -> 29
f0e -> 29
999ABCXYZ -> 162</pre>
====ES6====
<lang javascript>(() => {
"use strict";
// -------------- INTEGER DIGITS SUMMED --------------
// digitsSummed :: (Int | String) -> Int
const digitsSummed = number => {
// 10 digits + 26 alphabetics
// give us glyphs for up to base 36
const intMaxBase = 36;
return `${number}`
.split("")
.reduce(
(sofar, digit) => sofar + parseInt(
digit, intMaxBase
),
0
);
};
// ---------------------- TEST -----------------------
return [1, 12345, 0xfe, "fe", "f0e", "999ABCXYZ"]
.map((x) => `${x} -> ${digitsSummed(x)}`)
.join("\n");
▲})();</lang>
{{Out}}
<pre>1 -> 1
12345 -> 15
|