UNPKG

rambdax

Version:

Extended version of Rambda - a lightweight, faster alternative to Ramda

27 lines (22 loc) 678 B
import { _isArray } from '../src/_internals/_isArray' export function dropWhile(predicate, iterable){ if (arguments.length === 1){ return _iterable => dropWhile(predicate, _iterable) } const isArray = _isArray(iterable) if (!isArray && typeof iterable !== 'string'){ throw new Error('`iterable` is neither list nor a string') } let flag = false const holder = [] let counter = -1 while (counter++ < iterable.length - 1){ if (flag){ holder.push(iterable[ counter ]) } else if (!predicate(iterable[ counter ])){ if (!flag) flag = true holder.push(iterable[ counter ]) } } return isArray ? holder : holder.join('') }