Creates an array of elements split into groups the length of size
.
_.chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]
Creates an array with all falsely values removed.
_.compact([0, 1, false, 2, '', 3]);
// => [1, 2, 3]
Creates a new array concatenating array
with any additional arrays and/or values.
var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
console.log(other);
// => [1, 2, 3, [4]]
console.log(array);
// => [1]
Creates an array of array
values not included in the other given arrays using SameValueZero
for equality comparisons. The order and references of result values are determined by the first array.
_.difference([2, 1], [2, 3]);
// => [1]
Creates an array of array
values not included in the other given arrays using SameValueZero
for equality comparisons except that it accepts iteratee
which is invoked for each element of array
and values
to generate the criterion by which they’re compared.
_.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);
// => [1.2]
// The `_.property` iteratee shorthand.
_.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');
// => [{ 'x': 2 }]
Creates an array of array
values accept comparator
which is invoked to compare elements of array
to values
.
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
_.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);
// => [{ 'x': 2, 'y': 1 }]
Creates a slice of array
with n
elements dropped from the beginning.
_.drop([1,2,3]);// => [2, 3]
Creates a slice of array
with n
elements dropped from the end.
_.dropRight([1,2,3]);// => [1, 2]
Creates a slice of array
excluding elements dropped from the end. Elements are dropped until predicate
returns falsely. The predicate is invoked with three arguments: (value, index, array).
var users = [
{ 'user': 'barney', 'active': true },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': false }
];
_.dropRightWhile(users, function(o) { return !o.active; });
// => objects for ['barney']
// The `_.matches` iteratee shorthand.
_.dropRightWhile(users, { 'user': 'pebbles', 'active': false });
// => objects for ['barney', 'fred']
// The `_.matchesProperty` iteratee shorthand.
_.dropRightWhile(users, ['active', false]);
// => objects for ['barney']
// The `_.property` iteratee shorthand.
_.dropRightWhile(users, 'active');
// => objects for ['barney', 'fred', 'pebbles']
Creates a slice of array
excluding elements dropped from the beginning. Elements are dropped until predicate
returns falsey. The predicate is invoked with three arguments: (value, index, array).
var users = [
{ 'user': 'barney', 'active': false },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': true }
];
_.dropWhile(users, function(o) { return !o.active; });
// => objects for ['pebbles']
// The `_.matches` iteratee shorthand.
_.dropWhile(users, { 'user': 'barney', 'active': false });
// => objects for ['fred', 'pebbles']
// The `_.matchesProperty` iteratee shorthand.
_.dropWhile(users, ['active', false]);
// => objects for ['pebbles']
// The `_.property` iteratee shorthand.
_.dropWhile(users, 'active');
// => objects for ['barney', 'fred', 'pebbles']
Fills elements of array
with value
from start
up to, but not including, end
.
var array = [1, 2, 3];
_.fill(array, 'a');
console.log(array);
// => ['a', 'a', 'a']
_.fill(Array(3), 2);
// => [2, 2, 2]
_.fill([4, 6, 8, 10], '*', 1, 3);
// => [4, '*', '*', 10]
Flattens array
a single level deep.
_.flatten([1, [2, [3, [4]],5]]);// => [1, 2, [3, [4]], 5]
Recursively flattens array
.
_.flattenDeep([1, [2, [3, [4]], 5]]);
// => [1, 2, 3, 4, 5]
Recursively flatten array
up to depth
times.
var array = [1, [2, [3, [4]], 5]];
_.flattenDepth(array, 1);
// => [1, 2, [3, [4]], 5]
The inverse of _.toPairs
; this method returns an object composed from key-value pairs
.
_.fromPairs([['a', 1], ['b', 2]]);
// => { 'a': 1, 'b': 2 }
Gets the first element of array
.
_.head([1, 2, 3]);
// => 1
Gets the index at which the first occurrence of value
is found in array
using SameValueZero
for equality comparisons. If fromIndex
is negative, it’s used as the offset from the end of array
.
// Search from the `fromIndex`.
_.indexOf([1, 2, 1, 2], 2, 2);
// => 3
Gets all but the last element of array
.
_.initial([1, 2, 3]);
// => [1, 2]
Creates an array of unique values that are included in all given arrays using SameValueZero
for equality comparisons. The order and references of result values are determined by the first array.
_.intersection([2, 1], [2, 3]);
// => [2]
Converts all elements array
into a string separated by separator
.
_.join(['a', 'b', 'c'], '~');
// => 'a~b~c'
Gets the last element of array
.
_.last([1, 2, 3]);
// => 3
Gets the element at index n
of array
. If n
is negative, the nth element from the end is returned.
var array = ['a', 'b', 'c', 'd'];
_.nth(array, 1);
// => 'b'
Removes all given values from array
using SameValueZero
for equality comparisons.
var array = ['a', 'b', 'c', 'a', 'b', 'c'];
_.pull(array, 'a', 'c');
console.log(array);
// => ['b', 'b']
Removes elements from array
corresponding to indexes
and returns an array of removed elements.
var array = ['a', 'b', 'c', 'd'];
var pulled = _.pullAt(array, [1, 3]);
console.log(array);
// => ['a', 'c']
console.log(pulled);
// => ['b', 'd']
Removes all elements from array
that predicate
returns truthy for and returns an array of the removed elements. The predicate is invoked with three arguments: (value, index, array).
var array = [1, 2, 3, 4];
var evens = _.remove(array, function(n) {
return n % 2 == 0;
});
console.log(array);
// => [1, 3]
console.log(evens);
// => [2, 4]
Reverses array
so that the first element becomes the last, the second element becomes the second to last, and so on.
var array = [1, 2, 3];
_.reverse(array);
// => [3, 2, 1]
console.log(array);
// => [3, 2, 1]
Creates a slice of array
from start
up to, but not including, end
.
_.slice(array, [start=0], [end=array.length])
Uses a binary search to determine the lowest index at which value
should be inserted into array
in order to maintain its sort order.
_.sortedIndex([30, 50], 40);
// => 1
Gets all but the first element of array
.
_.tail([1, 2, 3]);
// => [2, 3]
Creates a slice of array
with n
elements taken from the beginning.
_.take([1, 2, 3]);
// => [1]
_.take([1, 2, 3], 2);
// => [1, 2]
_.take([1, 2, 3], 5);
// => [1, 2, 3]
_.take([1, 2, 3], 0);
// => []
Creates a slice of array
with n
elements taken from the end.
_.takeRight([1, 2, 3]);
// => [3]
_.takeRight([1, 2, 3], 2);
// => [2, 3]
_.takeRight([1, 2, 3], 5);
// => [1, 2, 3]
_.takeRight([1, 2, 3], 0);
// => []
Creates a slice of array
with elements taken from the end. Elements are taken until predicate
returns falsey. The predicate is invoked with three arguments: (value, index, array).
var users = [
{ 'user': 'barney', 'active': true },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': false }
];
_.takeRightWhile(users, function(o) { return !o.active; });
// => objects for ['fred', 'pebbles']
// The `_.matches` iteratee shorthand.
_.takeRightWhile(users, { 'user': 'pebbles', 'active': false });
// => objects for ['pebbles']
// The `_.matchesProperty` iteratee shorthand.
_.takeRightWhile(users, ['active', false]);
// => objects for ['fred', 'pebbles']
// The `_.property` iteratee shorthand.
_.takeRightWhile(users, 'active');
// => []
Creates a slice of array
with elements taken from the beginning. Elements are taken until predicate
returns falsey. The predicate is invoked with three arguments: (value, index, array).
var users = [
{ 'user': 'barney', 'active': false },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': true }
];
_.takeWhile(users, function(o) { return !o.active; });
// => objects for ['barney', 'fred']
// The `_.matches` iteratee shorthand.
_.takeWhile(users, { 'user': 'barney', 'active': false });
// => objects for ['barney']
// The `_.matchesProperty` iteratee shorthand.
_.takeWhile(users, ['active', false]);
// => objects for ['barney', 'fred']
// The `_.property` iteratee shorthand.
_.takeWhile(users, 'active');
// => []
Creates an array of unique values, in order, from all given arrays using SameValueZero
for equality comparisons.
_.union([2], [1, 2]);
// => [2, 1]
Creates a duplicate-free version of an array, using SameValueZero
for equality comparisons, in which only the first occurrence of each element is kept. The order of result values is determined by the order they occur in the array.
_.uniq([2, 1, 2]);
// => [2, 1]
Creates an array excluding all given values using SameValueZero
for equality comparisons.
_.without([2, 1, 2, 3], 1, 2);
// => [3]
Creates an array of unique values that is the symmetric difference of the given arrays. The order of result values is determined by the order they occur in the arrays.
_.xor([2, 1], [2, 3]);
// => [1, 3]
Creates an array of grouped elements, the first of which contains the first elements of the given arrays, the second of which contains the second elements of the given arrays, and so on.
_.zip(['a', 'b'], [1, 2], [true, false]);
// => [['a', 1, true], ['b', 2, false]]