@@ -171,6 +171,19 @@ export function takeWhileFn<T>(
171171 return array => takeWhile ( array , predicate ) ;
172172}
173173
174+ export function takeUntil < T > (
175+ array : ArrayLike < T > ,
176+ predicate : ( element : T , index : number ) => boolean
177+ ) : T [ ] {
178+ return takeWhile ( array , ( element , index ) => ! predicate ( element , index ) ) ;
179+ }
180+
181+ export function takeUntilFn < T > (
182+ predicate : ( element : T , index : number ) => boolean
183+ ) : ( array : ArrayLike < T > ) => T [ ] {
184+ return array => takeUntil ( array , predicate ) ;
185+ }
186+
174187export function dropWhile < T > (
175188 array : ArrayLike < T > ,
176189 predicate : ( element : T , index : number ) => boolean
@@ -188,6 +201,19 @@ export function dropWhileFn<T>(
188201 return array => dropWhile ( array , predicate ) ;
189202}
190203
204+ export function dropUntil < T > (
205+ array : ArrayLike < T > ,
206+ predicate : ( element : T , index : number ) => boolean
207+ ) : T [ ] {
208+ return dropWhile ( array , ( element , index ) => ! predicate ( element , index ) ) ;
209+ }
210+
211+ export function dropUntilFn < T > (
212+ predicate : ( element : T , index : number ) => boolean
213+ ) : ( array : ArrayLike < T > ) => T [ ] {
214+ return array => dropWhile ( array , predicate ) ;
215+ }
216+
191217export function equal < T > (
192218 a : ArrayLike < T > ,
193219 b : ArrayLike < T > ,
0 commit comments