Home Reference Source Test Repository

lib/intersperse.js

'use strict';

Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.intersperse = intersperse;
/**
 * Takes an element and a list and intersperses that element
 * between the elements of the list
 *
 * @since v0.1.0
 * @param {any} element - The element to intersperse
 * @param {Array} list - The array
 * @return {Array} - An intersperses list
 * @example
 *   intersperse(',', 'abcde')) // => 'a,b,c,d,e'
 *
 *   intersperse(' ', ['intersperse', 'is', 'a', 'fun', 'function', '!']) // =>
 *     ['intersperse', ' ', 'is', ' ', 'a', ' ',  'fun', ' ',  'function', ' ',  '!']
 */
function intersperse(element, list) {
    if (list.length === 0) return undefined;
    var results = void 0;
    if (typeof list === 'string') {
        results = '';
        for (var i = 0; i < list.length; i++) {
            results += i === list.length - 1 ? list[i] : '' + list[i] + element;
        }
    } else {
        results = [];
        for (var _i = 0; _i < list.length; _i++) {
            _i === list.length - 1 ? results.push(list[_i]) : results.push(list[_i], element);
        }
    }
    return results;
}