0.2.6 • Published 8 months ago

array-kit v0.2.6

Weekly downloads
108
License
MIT
Repository
github
Last release
8 months ago

Array Kit

An array manipulation toolbox.

Early alpha.

Full BDD spec generated by Mocha:

TOC

.removeItems()

should produce a new array without any element matching the second array.

var input , copy ;

expect( arrayKit.removeItems( [ 1,2,3,4,5,4,3,2,1 ] , [ 2,4 ] ) ).to.eql( [ 1,3,5,3,1 ] ) ;
expect( arrayKit.removeItems( [ 1,2,3,4,5,4,3,2,1 ] , [ 2,4,6 ] ) ).to.eql( [ 1,3,5,3,1 ] ) ;
expect( arrayKit.removeItems( [ 1,2,3,4,5,4,3,2,1 ] , [] ) ).to.eql( [ 1,2,3,4,5,4,3,2,1 ] ) ;
expect( arrayKit.removeItems( [] , [ 2,4 ] ) ).to.eql( [] ) ;

var a = { a: 'a' } ;
var b = { b: 'b' } ;
var c = { c: 'c' } ;

// Check if the src/input array was left untouched
input = [ a , a , b , a ] ;
copy = input ;
expect( arrayKit.removeItems( input , [ a ] ) ).to.eql( [ b ] ) ;
expect( input ).to.eql( [ a , a , b , a ] ) ;
expect( input ).to.be( copy ) ;

expect( arrayKit.removeItems( [ a , a , a ] , [ a ] ) ).to.eql( [] ) ;
expect( arrayKit.removeItems( [ a , a , b , a ] , [ a ] ) ).to.eql( [ b ] ) ;
expect( arrayKit.removeItems( [ a , a , b , a ] , [ c ] ) ).to.eql( [ a , a , b , a ] ) ;
expect( arrayKit.removeItems( [ a , a , b , a ] , [ a , c ] ) ).to.eql( [ b ] ) ;

expect( arrayKit.removeItems( [ a , b , null , c ] , [ b ] ) ).to.eql( [ a , null , c ] ) ;
expect( arrayKit.removeItems( [ a , b , c ] , [ b , null ] ) ).to.eql( [ a , c ] ) ;
expect( arrayKit.removeItems( [ a , null , b , c ] , [ b , null ] ) ).to.eql( [ a , c ] ) ;

expect( arrayKit.removeItems( [ a , b , undefined , c ] , [ b ] ) ).to.eql( [ a , undefined , c ] ) ;
expect( arrayKit.removeItems( [ a , b , c ] , [ b , undefined ] ) ).to.eql( [ a , c ] ) ;
expect( arrayKit.removeItems( [ a , undefined , b , c ] , [ b , undefined ] ) ).to.eql( [ a , c ] ) ;

expect( arrayKit.removeItems( [ null , a , b , undefined , c ] , [ b ] ) ).to.eql( [ null , a , undefined , c ] ) ;
expect( arrayKit.removeItems( [ null , a , b , undefined , c ] , [ null , b ] ) ).to.eql( [ a , undefined , c ] ) ;
expect( arrayKit.removeItems( [ null , a , b , undefined , c ] , [ b , undefined ] ) ).to.eql( [ null , a , c ] ) ;
expect( arrayKit.removeItems( [ null , a , b , undefined , c ] , [ undefined , null , b ] ) ).to.eql( [ a , c ] ) ;

.delete()

should delete one index in-place.

var array ;

array = [ 1,2,3,4,5 ] ;
arrayKit.delete( array , 7 ) ;
expect( array ).to.eql( [ 1,2,3,4,5 ] ) ;
arrayKit.delete( array , 6 ) ;
expect( array ).to.eql( [ 1,2,3,4,5 ] ) ;
arrayKit.delete( array , 5 ) ;
expect( array ).to.eql( [ 1,2,3,4,5 ] ) ;

array = [ 1,2,3,4,5 ] ;
arrayKit.delete( array , 0 ) ;
expect( array ).to.eql( [ 2,3,4,5 ] ) ;

array = [ 1,2,3,4,5 ] ;
arrayKit.delete( array , 1 ) ;
expect( array ).to.eql( [ 1,3,4,5 ] ) ;

array = [ 1,2,3,4,5 ] ;
arrayKit.delete( array , 2 ) ;
expect( array ).to.eql( [ 1,2,4,5 ] ) ;

array = [ 1,2,3,4,5 ] ;
arrayKit.delete( array , 3 ) ;
expect( array ).to.eql( [ 1,2,3,5 ] ) ;

array = [ 1,2,3,4,5 ] ;
arrayKit.delete( array , 4 ) ;
expect( array ).to.eql( [ 1,2,3,4 ] ) ;

.inPlaceConcat()

should concat in-place.

var array ;

array = [ 1,2,3,4,5 ] ;
arrayKit.inPlaceConcat( array , [] ) ;
expect( array ).to.eql( [ 1,2,3,4,5 ] ) ;

array = [ 1,2,3,4,5 ] ;
arrayKit.inPlaceConcat( array , [ 6 ] ) ;
expect( array ).to.eql( [ 1,2,3,4,5,6 ] ) ;

array = [ 1,2,3,4,5 ] ;
arrayKit.inPlaceConcat( array , [ 6,7 ] ) ;
expect( array ).to.eql( [ 1,2,3,4,5,6,7 ] ) ;

array = [] ;
arrayKit.inPlaceConcat( array , [] ) ;
expect( array ).to.eql( [] ) ;

array = [] ;
arrayKit.inPlaceConcat( array , [ 6 ] ) ;
expect( array ).to.eql( [ 6 ] ) ;

array = [] ;
arrayKit.inPlaceConcat( array , [ 6,7 ] ) ;
expect( array ).to.eql( [ 6,7 ] ) ;

.range()

should create an array from a range.

expect( arrayKit.range( 4 ) ).to.eql( [ 0,1,2,3 ] ) ;
expect( arrayKit.range( 1 , 4 ) ).to.eql( [ 1,2,3 ] ) ;
expect( arrayKit.range( 3 , 0 ) ).to.eql( [ 3,2,1 ] ) ;
expect( arrayKit.range( 1 , 10 , 2 ) ).to.eql( [ 1,3,5,7,9 ] ) ;
expect( arrayKit.range( 9 , 0 , -2 ) ).to.eql( [ 9,7,5,3,1 ] ) ;
0.2.6

8 months ago

0.2.5

8 months ago

0.2.4

4 years ago

0.2.3

4 years ago

0.2.1

4 years ago

0.2.2

4 years ago

0.2.0

4 years ago

0.1.5

7 years ago

0.1.4

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

8 years ago

0.0.2

8 years ago

0.0.1

9 years ago