/* Copy an array */
b = a.slice();
/* Predicate is true everywhere (`all` in some languages) */
a.every(pred)
/* Predicate is true for some values (`any in some languages`) */
a.some(pred)
/* Array of integers i : lo <= i < hi with step s */
const y = (lo, hi) => Array(hi-lo).fill(undefined).map((_,i) => lo+i)
/* In reverse order */
const y_rev = (lo, hi) => Array(hi-lo).fill(undefined).map((_,i) => hi - i)
/* The do-it-all version with step s */
const z = (lo, hi, dir = 1, s = 1) => (dir > 0 ? y : y_rev)(lo, hi).filter(i => i % s === 0);
/* Array of n random numbers r: lo <= r < hi */
const r = (n, lo, hi) => Array(n).fill(Math.random).map(r => r()*(hi-lo) + lo)
/* Same but for integers */
const ri = (n, lo, hi) => y(n,lo,hi).map(Math.floor)
/* Flatten a nested array a of arrays (on time vs. totally) */
const is_flat = a => a.every(i => !Array.isArray(i));
const flatten = a => { for(; is_flat(a); a = a.reduce((i,j) => i.concat(j)); return a; } // flatten(..flatten(flatten(flatten(a))))
Last active
March 20, 2017 22:39
-
-
Save keksipurkki/98006c0e05b93768d1332a2eca142acb to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment