程序代写代做代考 Java javascript ### array.selectors

### array.selectors

> Functions to take things from arrays. View Annotated Source

——————————————————————————–

#### best

**Signature:** `_.best(array:Array, fun:Function)`

Returns the “best” value in an array based on the result of a given function.

“`javascript
_.best([1, 2, 3, 4, 5], function(x, y) {
return x > y;
});
//=> 5
“`

——————————————————————————–

#### dropWhile

**Signature:** `_.dropWhile(array:Array, pred:Function)`

Drops elements for which the given function returns a truthy value.

“`javascript
_.dropWhile([-2,-1,0,1,2], isNeg);
//=> [0,1,2]
“`

——————————————————————————–

#### keep

**Signature:** `_.keep(array:Array, fun:Function)`

Returns an array of existy results of a function over a source array.

“`javascript
_.keep([1, 2, 3, 4, 5], function(val) {
if (val % 3 === 0) {
return val;
}
});
// => [3]
“`

——————————————————————————–

#### nth

**Signature:** `_.nth(array:Array, index:Number[, guard:Any])`

The `_.nth` function is a convenience for the equivalent `array[n]`. The
optional `guard` value allows `_.nth` to work correctly as a callback for
`_.map`.

“`javascript
_.nth([‘a’,’b’,’c’], 2);
//=> ‘c’
“`

If given an index out of bounds then `_.nth` will return `undefined`:

“`javascript
_.nth([‘a’,’b’,’c’], 2000);
//=> undefined
“`

The `_.nth` function can also be used in conjunction with `_.map` and `_.compact` like so:

“`javascript
var b = [[‘a’],[‘b’],[]];

_.compact(_.map(b, function(e) { return _.nth(e,0) }));
//=> [‘a’,’b’]
“`

If wrapping a function around `_.nth` is too tedious or you’d like to partially apply the index then Underscore-contrib offers any of `_.flip2`, `_.fix` or `rcurry2` to solve this.

——————————————————————————–

#### partitionBy

**Signature:** `_.keep(array:Array, fun:Function)`

Takes an array and partitions it into sub-arrays as the given predicate changes
truth sense.

“`javascript
_.partitionBy([1,2,2,3,1,1,5], _.isEven);
// => [[1],[2,2],[3,1,1,5]]

_.partitionBy([1,2,2,3,1,1,5], _.identity);
// => [[1],[2,2],[3],[1,1],[5]]
“`

——————————————————————————–

#### second

**Signature:** `_.second(array:Array, index:Number[, guard:Any])`

The `_.second` function is a convenience for the equivalent `array[1]`. The
optional `guard` value allows `_.second` to work correctly as a callback for
`_.map`.

“`javascript
_.second([‘a’,’b’]);
//=> ‘b’

_.map([[‘a’,’b’], _.range(10,20)], _.second);
//=> [‘b’,11]
“`

You can also pass an optional number to the `_.second` function to take a number of elements from an array starting with the second element and ending at the given index:

“`javascript
_.second(_.range(10), 5)
//=> [1, 2, 3, 4]
“`

——————————————————————————–

#### takeWhile

**Signature:** `_.takeWhile(array:Array, pred:Function)`

The `_.takeWhile` function takes an array and a function and returns a new array containing the first n elements in the original array for which the given function returns a truthy value:

“`javascript
var isNeg = function(n) { return n < 0; }; _.takeWhile([-2,-1,0,1,2], isNeg); //=> [-2,-1]
“`

——————————————————————————–

#### third

**Signature:** `_.third(array:Array, index:Number[, guard:Any])`

The `_.third` function is a convenience for the equivalent `array[2]`. The
optional `guard` value allows `_.third` to work correctly as a callback for
`_.map`.

“`javascript
_.third([‘a’,’b’,’c’]);
//=> ‘c’

_.map([[‘a’,’b’,’c’], _.range(10,20)], _.third);
//=> [‘c’,12]
“`

You can also pass an optional number to the `_.third` function to take a number of elements from an array starting with the third element and ending at the given index:

“`javascript
_.third(_.range(10), 5)
//=> [2, 3, 4]
“`

——————————————————————————–