Skip to content

Instantly share code, notes, and snippets.

@bryansray
Created September 15, 2017 03:48
Show Gist options
  • Save bryansray/b5a5edb64cb75be70920908ea16db1a8 to your computer and use it in GitHub Desktop.
Save bryansray/b5a5edb64cb75be70920908ea16db1a8 to your computer and use it in GitHub Desktop.
Javascript Magic Function
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
function MagicFunction(...numbers) {
let cache = numbers;
function magicFunction(...numbers) {
cache = cache.concat(numbers);
return magicFunction;
}
magicFunction.valueOf = () => {
cache = cache.map(n => {
let original = n;
if (Array.isArray(n)) n = 0;
let parsedN = parseFloat(n, 10);
let result = isNaN(parsedN) ? 0 : parsedN;
if ((typeof(original) === 'boolean' || typeof(original) === 'object') && original == true) result = 1;
return result;
});
let result = cache.reduce((value, memo) => { return value + memo; }, 0);
return result;
}
return magicFunction;
}
@putsan
Copy link

putsan commented Oct 8, 2020

Interesting and helpful for learning. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment