/**
 * Represents Array collections.
 */ export class ArrayCollection < T > extends Array { param { ... * } items returns add ( ... items ) { items . forEach ( item => { if ( ! this . includes ( item ) ) { this . push ( item ) ; } } ) ; return this ; } param { Function } callback returns { ArrayCollection } each ( callback ) { let target ; while ( target = this . pop ( ) ) { callback ( target ) ; } return this ; } param { ... * } items returns remove ( ... items ) { items . forEach ( item => { const itemIndex = this . indexOf ( item ) ; if ( itemIndex > - 1 ) { this . splice ( itemIndex , 1 ) ; } } ) ; return this ; } }