JavaScript arrays

array = [a,b,c,d,e]

array[1]                 //=> b
array.indexOf(b)         //=> 1

Subsets

array.slice(0,1)         //=> [a]
array.slice(1)           //=> [b,c,d,e]
array.slice(1,2)         //=> [b] 

// Destructive
re = array.splice(1)     // re = [b,c,d,e]     array == [a]
re = array.splice(1,2)   // re = [b,c]         array == [a,d,e]

Adding items

array.push(X)            // array == [_,_,_,_,_,X]
array.unshift(X)         // array == [X,_,_,_,_,_]
array.splice(2, 0, X)    // array == [_,_,X,_,_,_]

array.concat([X,Y])      //=> [_,_,_,_,_,X,Y]

Inserting

// after -- [_,_,REF,NEW,_,_]
array.splice(array.indexOf(REF)+1, 0, NEW))

// before -- [_,_,NEW,REF,_,_]
array.splice(array.indexOf(REF), 0, NEW))

Replace items

array.splice(2, 1, X)    // array == [a,b,X,d,e]

Removing items

array.pop()              //=> e      array == [a,b,c,d]
array.shift()            //=> a      array == [b,c,d,e]
array.splice(2, 1)       //=> [c]    array == [a,b,d,e]

Iterables

.filter(n => ...) => Array

.find(n => ...)  // es6
.findIndex(...)  // es6

.every(n => ...) => Boolean // ie9+
.some(n => ..) => Boolean   // ie9+

.map(n => ...)   // ie9+
.reduce((total, n) => total) // ie9+
.reduceRight(...)