28 lines
696 B
JavaScript
28 lines
696 B
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");
|
|
})();
|