UNPKG

locutus

Version:

Locutus other languages' standard libraries to JavaScript for fun and educational purposes

23 lines (22 loc) 747 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.inits = inits; function inits(items) { // discuss at: https://locutus.io/haskell/list/inits/ // original by: Kevin van Zonneveld (https://kvz.io) // note 1: Returns all prefixes from shortest to longest, like Haskell Data.List.inits. // example 1: inits([1, 2, 3]) // returns 1: [[], [1], [1, 2], [1, 2, 3]] // example 2: inits(['a', 'b']) // returns 2: [[], ['a'], ['a', 'b']] // example 3: inits([]) // returns 3: [[]] if (!Array.isArray(items)) { return []; } const out = [[]]; for (let i = 1; i <= items.length; i++) { out.push(items.slice(0, i)); } return out; }