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 (ES 5)===
====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
9,655

edits