Add init(), tail() and reverse() Array functions. Alias first() to head();

This commit is contained in:
Luke Sutton
2009-11-19 11:07:14 +10:30
parent 86e6dd58c2
commit 8cac2d5bd7
2 changed files with 39 additions and 0 deletions

View File

@@ -305,6 +305,29 @@
while (i--) if (array[i] === item) return i;
return -1;
};
// Returns everything but the first entry of the array. Conceptually the
// same as calling shift(), but doesn't mutate the array passed in.
_.tail = function(array) {
var tail = _.clone(array);
tail.shift();
return tail;
};
// Returns everything but the last entry of the array. Conceptually the
// same as calling pop(), but doesn't mutate the array passed in.
_.init = function(array) {
var init = _.clone(array);
init.pop();
return init;
};
// Returns a new array, with the entries or the passed-in array in reverse
// order.
_.reverse = function(array) {
var reverse = _.clone(array);
return reverse.reverse();
};
/* ----------------------- Function Functions: -----------------------------*/
@@ -501,6 +524,7 @@
/*------------------------------- Aliases ----------------------------------*/
_.head = _.first;
_.forEach = _.each;
_.foldl = _.inject = _.reduce;
_.foldr = _.reduceRight;