Cleanup _.first, _.initial, _.last, and _.rest.

This commit is contained in:
John-David Dalton
2014-02-24 22:40:26 -08:00
parent f60cc76f3e
commit 818c6711d8

View File

@@ -1034,6 +1034,7 @@
// ensure `new bound` is an instance of `func` // ensure `new bound` is an instance of `func`
var thisBinding = baseCreate(func.prototype), var thisBinding = baseCreate(func.prototype),
result = func.apply(thisBinding, args || arguments); result = func.apply(thisBinding, args || arguments);
return isObject(result) ? result : thisBinding; return isObject(result) ? result : thisBinding;
} }
return func.apply(thisArg, args || arguments); return func.apply(thisArg, args || arguments);
@@ -2385,11 +2386,11 @@
* // => ['barney', 'fred'] * // => ['barney', 'fred']
*/ */
function first(array, callback, thisArg) { function first(array, callback, thisArg) {
var n = 0,
length = array ? array.length : 0;
if (typeof callback != 'number' && callback != null) { if (typeof callback != 'number' && callback != null) {
var index = -1; var index = -1,
length = array ? array.length : 0,
n = 0;
callback = lodash.createCallback(callback, thisArg, 3); callback = lodash.createCallback(callback, thisArg, 3);
while (++index < length && callback(array[index], index, array)) { while (++index < length && callback(array[index], index, array)) {
n++; n++;
@@ -2558,17 +2559,18 @@
* // => ['barney', 'fred'] * // => ['barney', 'fred']
*/ */
function initial(array, callback, thisArg) { function initial(array, callback, thisArg) {
var n = 0, var length = array ? array.length : 0;
length = array ? array.length : 0;
if (typeof callback != 'number' && callback != null) { if (typeof callback != 'number' && callback != null) {
var index = length; var index = length,
n = 0;
callback = lodash.createCallback(callback, thisArg, 3); callback = lodash.createCallback(callback, thisArg, 3);
while (index-- && callback(array[index], index, array)) { while (index-- && callback(array[index], index, array)) {
n++; n++;
} }
} else { } else {
n = (callback == null || thisArg) ? 1 : callback || n; n = (callback == null || thisArg) ? 1 : callback;
} }
n = length - n; n = length - n;
return slice(array, 0, n > 0 ? n : 0); return slice(array, 0, n > 0 ? n : 0);
@@ -2683,11 +2685,12 @@
* // => [{ 'name': 'pebbles', 'employer': 'na', 'blocked': true }] * // => [{ 'name': 'pebbles', 'employer': 'na', 'blocked': true }]
*/ */
function last(array, callback, thisArg) { function last(array, callback, thisArg) {
var n = 0, var length = array ? array.length : 0;
length = array ? array.length : 0;
if (typeof callback != 'number' && callback != null) { if (typeof callback != 'number' && callback != null) {
var index = length; var index = length,
n = 0;
callback = lodash.createCallback(callback, thisArg, 3); callback = lodash.createCallback(callback, thisArg, 3);
while (index-- && callback(array[index], index, array)) { while (index-- && callback(array[index], index, array)) {
n++; n++;
@@ -2937,9 +2940,9 @@
*/ */
function rest(array, callback, thisArg) { function rest(array, callback, thisArg) {
if (typeof callback != 'number' && callback != null) { if (typeof callback != 'number' && callback != null) {
var n = 0, var index = -1,
index = -1, length = array ? array.length : 0,
length = array ? array.length : 0; n = 0;
callback = lodash.createCallback(callback, thisArg, 3); callback = lodash.createCallback(callback, thisArg, 3);
while (++index < length && callback(array[index], index, array)) { while (++index < length && callback(array[index], index, array)) {