locutus
Version:
Locutus other languages' standard libraries to JavaScript for fun and educational purposes
20 lines (19 loc) • 654 B
JavaScript
export 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;
}