locutus
Version:
Locutus other languages' standard libraries to JavaScript for fun and educational purposes
29 lines (28 loc) • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.split = split;
function split(str, delimiter, limit) {
// discuss at: https://locutus.io/powershell/split/
// parity verified: PowerShell 7.4
// original by: Kevin van Zonneveld (https://kvz.io)
// note 1: Splits a string by literal delimiter and supports optional max item count.
// example 1: split('a,b,c', ',')
// returns 1: ['a', 'b', 'c']
// example 2: split('a,b,c', ',', 2)
// returns 2: ['a', 'b']
// example 3: split('hello-world', '-')
// returns 3: ['hello', 'world']
const source = String(str);
const separator = String(delimiter);
if (limit === undefined) {
return source.split(separator);
}
const maxItems = Math.trunc(Number(limit));
if (!Number.isFinite(maxItems) || maxItems < 0) {
throw new RangeError('split(): limit must be a non-negative integer');
}
if (maxItems === 0) {
return [];
}
return source.split(separator).slice(0, maxItems);
}