array.js
694 Bytes
import { isFunction } from './inspect'
// --- Static ---
export const from = (...args) => Array.from(...args)
// --- Instance ---
export const arrayIncludes = (array, value) => array.indexOf(value) !== -1
export const concat = (...args) => Array.prototype.concat.apply([], args)
// --- Utilities ---
export const createArray = (length, fillFn) => {
const mapFn = isFunction(fillFn) ? fillFn : () => fillFn
return Array.apply(null, { length }).map(mapFn)
}
export const flatten = array => array.reduce((result, item) => concat(result, item), [])
export const flattenDeep = array =>
array.reduce((result, item) => concat(result, Array.isArray(item) ? flattenDeep(item) : item), [])