Browse Source

无JIRA FDL需求 chunk方法

es6
zsmj 2 years ago
parent
commit
659dcc1566
  1. 2
      lodash.md
  2. 232
      src/core/1.lodash.js
  3. 2
      src/core/2.base.js

2
lodash.md

@ -1 +1 @@
lodash core plus="debounce,throttle,get,set,findIndex,findLastIndex,findKey,findLastKey,isArrayLike,invert,invertBy,uniq,uniqBy,omit,omitBy,zip,unzip,rest,range,random,reject,intersection,drop,countBy,union,zipObject,initial,cloneDeep,clamp,isPlainObject,take,takeRight,without,difference,defaultsDeep,trim,merge,groupBy,uniqBy,before,after,unescape" lodash core plus="debounce,throttle,get,set,findIndex,findLastIndex,findKey,findLastKey,isArrayLike,invert,invertBy,uniq,uniqBy,omit,omitBy,zip,unzip,rest,range,random,reject,intersection,drop,countBy,union,zipObject,initial,cloneDeep,clamp,isPlainObject,take,takeRight,without,difference,defaultsDeep,trim,merge,groupBy,uniqBy,before,after,unescape,chunk"

232
src/core/1.lodash.js

@ -1,7 +1,7 @@
/** /**
* @license * @license
* Lodash (Custom Build) <https://lodash.com/> * Lodash (Custom Build) <https://lodash.com/>
* Build: `lodash core plus="debounce,throttle,get,set,findIndex,findLastIndex,findKey,findLastKey,isArrayLike,invert,invertBy,uniq,uniqBy,omit,omitBy,zip,unzip,rest,range,random,reject,intersection,drop,countBy,union,zipObject,initial,cloneDeep,clamp,isPlainObject,take,takeRight,without,difference,defaultsDeep,trim,merge,groupBy,uniqBy,before,after,unescape"` * Build: `lodash core plus="debounce,throttle,get,set,findIndex,findLastIndex,findKey,findLastKey,isArrayLike,invert,invertBy,uniq,uniqBy,omit,omitBy,zip,unzip,rest,range,random,reject,intersection,drop,countBy,union,zipObject,initial,cloneDeep,clamp,isPlainObject,take,takeRight,without,difference,defaultsDeep,trim,merge,groupBy,uniqBy,before,after,unescape,chunk"`
* Copyright JS Foundation and other contributors <https://js.foundation/> * Copyright JS Foundation and other contributors <https://js.foundation/>
* Released under MIT license <https://lodash.com/license> * Released under MIT license <https://lodash.com/license>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
@ -272,7 +272,8 @@
var nodeUtil = (function () { var nodeUtil = (function () {
try { try {
return freeProcess && freeProcess.binding && freeProcess.binding('util'); return freeProcess && freeProcess.binding && freeProcess.binding('util');
} catch (e) {} } catch (e) {
}
}()); }());
/* Node.js helper references. */ /* Node.js helper references. */
@ -296,10 +297,14 @@
*/ */
function apply(func, thisArg, args) { function apply(func, thisArg, args) {
switch (args.length) { switch (args.length) {
case 0: return func.call(thisArg); case 0:
case 1: return func.call(thisArg, args[0]); return func.call(thisArg);
case 2: return func.call(thisArg, args[0], args[1]); case 1:
case 3: return func.call(thisArg, args[0], args[1], args[2]); return func.call(thisArg, args[0]);
case 2:
return func.call(thisArg, args[0], args[1]);
case 3:
return func.call(thisArg, args[0], args[1], args[2]);
} }
return func.apply(thisArg, args); return func.apply(thisArg, args);
} }
@ -745,7 +750,8 @@
var index = -1, var index = -1,
length = strSymbols.length; length = strSymbols.length;
while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {
}
return index; return index;
} }
@ -761,7 +767,8 @@
function charsEndIndex(strSymbols, chrSymbols) { function charsEndIndex(strSymbols, chrSymbols) {
var index = strSymbols.length; var index = strSymbols.length;
while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {
}
return index; return index;
} }
@ -1066,7 +1073,8 @@
var func = getNative(Object, 'defineProperty'); var func = getNative(Object, 'defineProperty');
func({}, '', {}); func({}, '', {});
return func; return func;
} catch (e) {} } catch (e) {
}
}()); }());
/* Built-in method references for those with the same name as other `lodash` methods. */ /* Built-in method references for those with the same name as other `lodash` methods. */
@ -1248,7 +1256,9 @@
* @returns {Object} Returns the new object. * @returns {Object} Returns the new object.
*/ */
var baseCreate = (function () { var baseCreate = (function () {
function object() {} function object() {
}
return function (proto) { return function (proto) {
if (!isObject(proto)) { if (!isObject(proto)) {
return {}; return {};
@ -2199,7 +2209,9 @@
if (typeof func != 'function') { if (typeof func != 'function') {
throw new TypeError(FUNC_ERROR_TEXT); throw new TypeError(FUNC_ERROR_TEXT);
} }
return setTimeout(function() { func.apply(undefined, args); }, wait); return setTimeout(function () {
func.apply(undefined, args);
}, wait);
} }
/** /**
@ -2230,8 +2242,7 @@
if (comparator) { if (comparator) {
includes = arrayIncludesWith; includes = arrayIncludesWith;
isCommon = false; isCommon = false;
} } else if (values.length >= LARGE_ARRAY_SIZE) {
else if (values.length >= LARGE_ARRAY_SIZE) {
includes = cacheHas; includes = cacheHas;
isCommon = false; isCommon = false;
values = new SetCache(values); values = new SetCache(values);
@ -2250,8 +2261,7 @@
} }
} }
result.push(value); result.push(value);
} } else if (!includes(values, computed, comparator)) {
else if (!includes(values, computed, comparator)) {
result.push(value); result.push(value);
} }
} }
@ -2991,8 +3001,7 @@
if (isObject(srcValue)) { if (isObject(srcValue)) {
stack || (stack = new Stack); stack || (stack = new Stack);
baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
} } else {
else {
var newValue = customizer var newValue = customizer
? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)
: undefined; : undefined;
@ -3044,32 +3053,25 @@
if (isArr || isBuff || isTyped) { if (isArr || isBuff || isTyped) {
if (isArray(objValue)) { if (isArray(objValue)) {
newValue = objValue; newValue = objValue;
} } else if (isArrayLikeObject(objValue)) {
else if (isArrayLikeObject(objValue)) {
newValue = copyArray(objValue); newValue = copyArray(objValue);
} } else if (isBuff) {
else if (isBuff) {
isCommon = false; isCommon = false;
newValue = cloneBuffer(srcValue, true); newValue = cloneBuffer(srcValue, true);
} } else if (isTyped) {
else if (isTyped) {
isCommon = false; isCommon = false;
newValue = cloneTypedArray(srcValue, true); newValue = cloneTypedArray(srcValue, true);
} } else {
else {
newValue = []; newValue = [];
} }
} } else if (isPlainObject(srcValue) || isArguments(srcValue)) {
else if (isPlainObject(srcValue) || isArguments(srcValue)) {
newValue = objValue; newValue = objValue;
if (isArguments(objValue)) { if (isArguments(objValue)) {
newValue = toPlainObject(objValue); newValue = toPlainObject(objValue);
} } else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) {
else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) {
newValue = initCloneObject(srcValue); newValue = initCloneObject(srcValue);
} }
} } else {
else {
isCommon = false; isCommon = false;
} }
} }
@ -3371,8 +3373,7 @@
if (comparator) { if (comparator) {
isCommon = false; isCommon = false;
includes = arrayIncludesWith; includes = arrayIncludesWith;
} } else if (length >= LARGE_ARRAY_SIZE) {
else if (length >= LARGE_ARRAY_SIZE) {
var set = iteratee ? null : createSet(array); var set = iteratee ? null : createSet(array);
if (set) { if (set) {
return setToArray(set); return setToArray(set);
@ -3380,8 +3381,7 @@
isCommon = false; isCommon = false;
includes = cacheHas; includes = cacheHas;
seen = new SetCache; seen = new SetCache;
} } else {
else {
seen = iteratee ? [] : result; seen = iteratee ? [] : result;
} }
outer: outer:
@ -3401,8 +3401,7 @@
seen.push(computed); seen.push(computed);
} }
result.push(value); result.push(value);
} } else if (!includes(seen, computed, comparator)) {
else if (!includes(seen, computed, comparator)) {
if (seen !== result) { if (seen !== result) {
seen.push(computed); seen.push(computed);
} }
@ -3942,6 +3941,7 @@
var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
return fn.apply(isBind ? thisArg : this, arguments); return fn.apply(isBind ? thisArg : this, arguments);
} }
return wrapper; return wrapper;
} }
@ -3960,14 +3960,22 @@
// for more details. // for more details.
var args = arguments; var args = arguments;
switch (args.length) { switch (args.length) {
case 0: return new Ctor; case 0:
case 1: return new Ctor(args[0]); return new Ctor;
case 2: return new Ctor(args[0], args[1]); case 1:
case 3: return new Ctor(args[0], args[1], args[2]); return new Ctor(args[0]);
case 4: return new Ctor(args[0], args[1], args[2], args[3]); case 2:
case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]); return new Ctor(args[0], args[1]);
case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); case 3:
case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); return new Ctor(args[0], args[1], args[2]);
case 4:
return new Ctor(args[0], args[1], args[2], args[3]);
case 5:
return new Ctor(args[0], args[1], args[2], args[3], args[4]);
case 6:
return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);
case 7:
return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
} }
var thisBinding = baseCreate(Ctor.prototype), var thisBinding = baseCreate(Ctor.prototype),
result = Ctor.apply(thisBinding, args); result = Ctor.apply(thisBinding, args);
@ -4012,6 +4020,7 @@
var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
return apply(fn, this, args); return apply(fn, this, args);
} }
return wrapper; return wrapper;
} }
@ -4028,7 +4037,9 @@
if (!isArrayLike(collection)) { if (!isArrayLike(collection)) {
var iteratee = baseIteratee(predicate, 3); var iteratee = baseIteratee(predicate, 3);
collection = keys(collection); collection = keys(collection);
predicate = function(key) { return iteratee(iterable[key], key, iterable); }; predicate = function (key) {
return iteratee(iterable[key], key, iterable);
};
} }
var index = findIndexFunc(collection, predicate, fromIndex); var index = findIndexFunc(collection, predicate, fromIndex);
return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;
@ -4105,6 +4116,7 @@
} }
return fn.apply(thisBinding, args); return fn.apply(thisBinding, args);
} }
return wrapper; return wrapper;
} }
@ -4154,6 +4166,7 @@
} }
return apply(fn, isBind ? thisArg : this, args); return apply(fn, isBind ? thisArg : this, args);
} }
return wrapper; return wrapper;
} }
@ -4727,7 +4740,8 @@
try { try {
value[symToStringTag] = undefined; value[symToStringTag] = undefined;
var unmasked = true; var unmasked = true;
} catch (e) {} } catch (e) {
}
var result = nativeObjectToString.call(value); var result = nativeObjectToString.call(value);
if (unmasked) { if (unmasked) {
@ -4795,11 +4809,16 @@
if (ctorString) { if (ctorString) {
switch (ctorString) { switch (ctorString) {
case dataViewCtorString: return dataViewTag; case dataViewCtorString:
case mapCtorString: return mapTag; return dataViewTag;
case promiseCtorString: return promiseTag; case mapCtorString:
case setCtorString: return setTag; return mapTag;
case weakMapCtorString: return weakMapTag; case promiseCtorString:
return promiseTag;
case setCtorString:
return setTag;
case weakMapCtorString:
return weakMapTag;
} }
} }
return result; return result;
@ -4825,10 +4844,18 @@
size = data.size; size = data.size;
switch (data.type) { switch (data.type) {
case 'drop': start += size; break; case 'drop':
case 'dropRight': end -= size; break; start += size;
case 'take': end = nativeMin(end, start + size); break; break;
case 'takeRight': start = nativeMax(start, end - size); break; case 'dropRight':
end -= size;
break;
case 'take':
end = nativeMin(end, start + size);
break;
case 'takeRight':
start = nativeMax(start, end - size);
break;
} }
} }
return { 'start': start, 'end': end }; return { 'start': start, 'end': end };
@ -4934,9 +4961,15 @@
case dataViewTag: case dataViewTag:
return cloneDataView(object, isDeep); return cloneDataView(object, isDeep);
case float32Tag: case float64Tag: case float32Tag:
case int8Tag: case int16Tag: case int32Tag: case float64Tag:
case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: case int8Tag:
case int16Tag:
case int32Tag:
case uint8Tag:
case uint8ClampedTag:
case uint16Tag:
case uint32Tag:
return cloneTypedArray(object, isDeep); return cloneTypedArray(object, isDeep);
case mapTag: case mapTag:
@ -5442,10 +5475,12 @@
if (func != null) { if (func != null) {
try { try {
return funcToString.call(func); return funcToString.call(func);
} catch (e) {} } catch (e) {
}
try { try {
return (func + ''); return (func + '');
} catch (e) {} } catch (e) {
}
} }
return ''; return '';
} }
@ -5488,6 +5523,47 @@
/*------------------------------------------------------------------------*/ /*------------------------------------------------------------------------*/
/**
* Creates an array of elements split into groups the length of `size`.
* If `array` can't be split evenly, the final chunk will be the remaining
* elements.
*
* @static
* @memberOf _
* @since 3.0.0
* @category Array
* @param {Array} array The array to process.
* @param {number} [size=1] The length of each chunk
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
* @returns {Array} Returns the new array of chunks.
* @example
*
* _.chunk(['a', 'b', 'c', 'd'], 2);
* // => [['a', 'b'], ['c', 'd']]
*
* _.chunk(['a', 'b', 'c', 'd'], 3);
* // => [['a', 'b', 'c'], ['d']]
*/
function chunk(array, size, guard) {
if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {
size = 1;
} else {
size = nativeMax(toInteger(size), 0);
}
var length = array == null ? 0 : array.length;
if (!length || size < 1) {
return [];
}
var index = 0,
resIndex = 0,
result = Array(nativeCeil(length / size));
while (index < length) {
result[resIndex++] = baseSlice(array, index, (index += size));
}
return result;
}
/** /**
* Creates an array with all falsey values removed. The values `false`, `null`, * Creates an array with all falsey values removed. The values `false`, `null`,
* `0`, `""`, `undefined`, and `NaN` are falsey. * `0`, `""`, `undefined`, and `NaN` are falsey.
@ -5921,8 +5997,7 @@
if (end && typeof end != 'number' && isIterateeCall(array, start, end)) { if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {
start = 0; start = 0;
end = length; end = length;
} } else {
else {
start = start == null ? 0 : toInteger(start); start = start == null ? 0 : toInteger(start);
end = end === undefined ? length : toInteger(end); end = end === undefined ? length : toInteger(end);
} }
@ -6277,7 +6352,9 @@
var length = paths.length, var length = paths.length,
start = length ? paths[0] : 0, start = length ? paths[0] : 0,
value = this.__wrapped__, value = this.__wrapped__,
interceptor = function(object) { return baseAt(object, paths); }; interceptor = function (object) {
return baseAt(object, paths);
};
if (length > 1 || this.__actions__.length || if (length > 1 || this.__actions__.length ||
!(value instanceof LazyWrapper) || !isIndex(start)) { !(value instanceof LazyWrapper) || !isIndex(start)) {
@ -7301,6 +7378,7 @@
} }
return result; return result;
} }
debounced.cancel = cancel; debounced.cancel = cancel;
debounced.flush = flush; debounced.flush = flush;
return debounced; return debounced;
@ -7445,10 +7523,14 @@
return function () { return function () {
var args = arguments; var args = arguments;
switch (args.length) { switch (args.length) {
case 0: return !predicate.call(this); case 0:
case 1: return !predicate.call(this, args[0]); return !predicate.call(this);
case 2: return !predicate.call(this, args[0], args[1]); case 1:
case 3: return !predicate.call(this, args[0], args[1], args[2]); return !predicate.call(this, args[0]);
case 2:
return !predicate.call(this, args[0], args[1]);
case 3:
return !predicate.call(this, args[0], args[1], args[2]);
} }
return !predicate.apply(this, args); return !predicate.apply(this, args);
}; };
@ -7679,7 +7761,9 @@
* _.isArguments([1, 2, 3]); * _.isArguments([1, 2, 3]);
* // => false * // => false
*/ */
var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { var isArguments = baseIsArguments(function () {
return arguments;
}()) ? baseIsArguments : function (value) {
return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
!propertyIsEnumerable.call(value, 'callee'); !propertyIsEnumerable.call(value, 'callee');
}; };
@ -9358,8 +9442,7 @@
if (typeof upper == 'boolean') { if (typeof upper == 'boolean') {
floating = upper; floating = upper;
upper = undefined; upper = undefined;
} } else if (typeof lower == 'boolean') {
else if (typeof lower == 'boolean') {
floating = lower; floating = lower;
lower = undefined; lower = undefined;
} }
@ -9367,8 +9450,7 @@
if (lower === undefined && upper === undefined) { if (lower === undefined && upper === undefined) {
lower = 0; lower = 0;
upper = 1; upper = 1;
} } else {
else {
lower = toFinite(lower); lower = toFinite(lower);
if (upper === undefined) { if (upper === undefined) {
upper = lower; upper = lower;
@ -9911,6 +9993,7 @@
lodash.before = before; lodash.before = before;
lodash.bind = bind; lodash.bind = bind;
lodash.chain = chain; lodash.chain = chain;
lodash.chunk = chunk;
lodash.compact = compact; lodash.compact = compact;
lodash.concat = concat; lodash.concat = concat;
lodash.countBy = countBy; lodash.countBy = countBy;
@ -10267,8 +10350,7 @@
(freeModule.exports = lodash)._ = lodash; (freeModule.exports = lodash)._ = lodash;
// Export for CommonJS support. // Export for CommonJS support.
freeExports._ = lodash; freeExports._ = lodash;
} } else {
else {
// Export to the global object. // Export to the global object.
BI._ = lodash; BI._ = lodash;
} }

2
src/core/2.base.js

@ -651,7 +651,7 @@
}); });
// 通用方法 // 通用方法
BI._.each(["uniqueId", "result", "chain", "iteratee", "escape", "unescape", "before", "after"], function (name) { BI._.each(["uniqueId", "result", "chain", "iteratee", "escape", "unescape", "before", "after", "chunk"], function (name) {
BI[name] = function () { BI[name] = function () {
return BI._[name].apply(BI._, arguments); return BI._[name].apply(BI._, arguments);
}; };

Loading…
Cancel
Save