UNPKG

@kitmi/utils

Version:

A JavaScript utility library for both server and browser

18 lines (15 loc) 640 B
/** * Insert a separator as element into an array. * @alias array.insertBetween * @param {Array} arr * @param {*} separator * @returns {Array} The newly inserted array */ const insertSep = (lastIndex, separator) => (e, i) => i < lastIndex ? [e, separator] : [e]; const insertSepFunctor = (lastIndex, separator) => (e, i) => i < lastIndex ? [e, separator(i)] : [e]; const insertBetween = (arr, separator) => (typeof separator === 'function' ? arr.map(insertSepFunctor(arr.length - 1, separator)) : arr.map(insertSep(arr.length - 1, separator)) ).reduce((a, b) => [...a, b], []); export default insertBetween;