mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-08 02:17:48 +00:00
Add _.rangeRight.
This commit is contained in:
47
lodash.js
47
lodash.js
@@ -3247,6 +3247,33 @@
|
|||||||
return min + nativeFloor(nativeRandom() * (max - min + 1));
|
return min + nativeFloor(nativeRandom() * (max - min + 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function baseRange(start, end, step, fromRight) {
|
||||||
|
start = toNumber(start);
|
||||||
|
start = start === start ? start : 0;
|
||||||
|
|
||||||
|
if (end === undefined) {
|
||||||
|
end = start;
|
||||||
|
start = 0;
|
||||||
|
} else {
|
||||||
|
end = toNumber(end) || 0;
|
||||||
|
}
|
||||||
|
step = step === undefined ? (start < end ? 1 : -1) : (toNumber(step) || 0);
|
||||||
|
|
||||||
|
var index = -1,
|
||||||
|
length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),
|
||||||
|
result = Array(length);
|
||||||
|
|
||||||
|
while (++index < length) {
|
||||||
|
if (fromRight) {
|
||||||
|
result[index] = (end -= step);
|
||||||
|
} else {
|
||||||
|
result[index] = start;
|
||||||
|
start+= step;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The base implementation of `_.set`.
|
* The base implementation of `_.set`.
|
||||||
*
|
*
|
||||||
@@ -13279,21 +13306,14 @@
|
|||||||
if (step && isIterateeCall(start, end, step)) {
|
if (step && isIterateeCall(start, end, step)) {
|
||||||
end = step = undefined;
|
end = step = undefined;
|
||||||
}
|
}
|
||||||
start = toNumber(start);
|
return baseRange(start, end, step);
|
||||||
start = start === start ? start : 0;
|
}
|
||||||
|
|
||||||
if (end === undefined) {
|
function rangeRight(start, end, step) {
|
||||||
end = start;
|
if (step && isIterateeCall(start, end, step)) {
|
||||||
start = 0;
|
end = step = undefined;
|
||||||
} else {
|
|
||||||
end = toNumber(end) || 0;
|
|
||||||
}
|
}
|
||||||
step = step === undefined ? (start < end ? 1 : -1) : (toNumber(step) || 0);
|
return baseRange(start, end, step, true);
|
||||||
|
|
||||||
var n = nativeMax(nativeCeil((end - start) / (step || 1)), 0);
|
|
||||||
return baseTimes(n, function(index) {
|
|
||||||
return index ? (start += step) : start;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -13795,6 +13815,7 @@
|
|||||||
lodash.pullAllBy = pullAllBy;
|
lodash.pullAllBy = pullAllBy;
|
||||||
lodash.pullAt = pullAt;
|
lodash.pullAt = pullAt;
|
||||||
lodash.range = range;
|
lodash.range = range;
|
||||||
|
lodash.rangeRight = rangeRight;
|
||||||
lodash.rearg = rearg;
|
lodash.rearg = rearg;
|
||||||
lodash.reject = reject;
|
lodash.reject = reject;
|
||||||
lodash.remove = remove;
|
lodash.remove = remove;
|
||||||
|
|||||||
@@ -22570,6 +22570,7 @@
|
|||||||
'pullAll',
|
'pullAll',
|
||||||
'pullAt',
|
'pullAt',
|
||||||
'range',
|
'range',
|
||||||
|
'rangeRight',
|
||||||
'reject',
|
'reject',
|
||||||
'remove',
|
'remove',
|
||||||
'sampleSize',
|
'sampleSize',
|
||||||
@@ -22592,7 +22593,7 @@
|
|||||||
var acceptFalsey = lodashStable.difference(allMethods, rejectFalsey);
|
var acceptFalsey = lodashStable.difference(allMethods, rejectFalsey);
|
||||||
|
|
||||||
QUnit.test('should accept falsey arguments', function(assert) {
|
QUnit.test('should accept falsey arguments', function(assert) {
|
||||||
assert.expect(282);
|
assert.expect(284);
|
||||||
|
|
||||||
var emptyArrays = lodashStable.map(falsey, lodashStable.constant([]));
|
var emptyArrays = lodashStable.map(falsey, lodashStable.constant([]));
|
||||||
|
|
||||||
@@ -22630,7 +22631,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
QUnit.test('should return an array', function(assert) {
|
QUnit.test('should return an array', function(assert) {
|
||||||
assert.expect(68);
|
assert.expect(70);
|
||||||
|
|
||||||
var array = [1, 2, 3];
|
var array = [1, 2, 3];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user