@kineviz/lodash 4.17.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +47 -0
- package/README.md +39 -0
- package/_.log +3 -0
- package/_DataView.js +7 -0
- package/_Hash.js +32 -0
- package/_LazyWrapper.js +28 -0
- package/_ListCache.js +32 -0
- package/_LodashWrapper.js +22 -0
- package/_Map.js +7 -0
- package/_MapCache.js +32 -0
- package/_Promise.js +7 -0
- package/_Set.js +7 -0
- package/_SetCache.js +27 -0
- package/_Stack.js +27 -0
- package/_Symbol.js +6 -0
- package/_Uint8Array.js +6 -0
- package/_WeakMap.js +7 -0
- package/_apply.js +21 -0
- package/_arrayAggregator.js +22 -0
- package/_arrayEach.js +22 -0
- package/_arrayEachRight.js +21 -0
- package/_arrayEvery.js +23 -0
- package/_arrayFilter.js +25 -0
- package/_arrayIncludes.js +17 -0
- package/_arrayIncludesWith.js +22 -0
- package/_arrayLikeKeys.js +49 -0
- package/_arrayMap.js +21 -0
- package/_arrayPush.js +20 -0
- package/_arrayReduce.js +26 -0
- package/_arrayReduceRight.js +24 -0
- package/_arraySample.js +15 -0
- package/_arraySampleSize.js +17 -0
- package/_arrayShuffle.js +15 -0
- package/_arraySome.js +23 -0
- package/_asciiSize.js +12 -0
- package/_asciiToArray.js +12 -0
- package/_asciiWords.js +15 -0
- package/_assignMergeValue.js +20 -0
- package/_assignValue.js +28 -0
- package/_assocIndexOf.js +21 -0
- package/_baseAggregator.js +21 -0
- package/_baseAssign.js +17 -0
- package/_baseAssignIn.js +17 -0
- package/_baseAssignValue.js +25 -0
- package/_baseAt.js +23 -0
- package/_baseClamp.js +22 -0
- package/_baseClone.js +166 -0
- package/_baseConforms.js +18 -0
- package/_baseConformsTo.js +27 -0
- package/_baseCreate.js +30 -0
- package/_baseDelay.js +21 -0
- package/_baseDifference.js +67 -0
- package/_baseEach.js +14 -0
- package/_baseEachRight.js +14 -0
- package/_baseEvery.js +21 -0
- package/_baseExtremum.js +32 -0
- package/_baseFill.js +32 -0
- package/_baseFilter.js +21 -0
- package/_baseFindIndex.js +24 -0
- package/_baseFindKey.js +23 -0
- package/_baseFlatten.js +38 -0
- package/_baseFor.js +16 -0
- package/_baseForOwn.js +16 -0
- package/_baseForOwnRight.js +16 -0
- package/_baseForRight.js +15 -0
- package/_baseFunctions.js +19 -0
- package/_baseGet.js +24 -0
- package/_baseGetAllKeys.js +20 -0
- package/_baseGetTag.js +28 -0
- package/_baseGt.js +14 -0
- package/_baseHas.js +19 -0
- package/_baseHasIn.js +13 -0
- package/_baseInRange.js +18 -0
- package/_baseIndexOf.js +20 -0
- package/_baseIndexOfWith.js +23 -0
- package/_baseIntersection.js +74 -0
- package/_baseInverter.js +21 -0
- package/_baseInvoke.js +24 -0
- package/_baseIsArguments.js +18 -0
- package/_baseIsArrayBuffer.js +17 -0
- package/_baseIsDate.js +18 -0
- package/_baseIsEqual.js +28 -0
- package/_baseIsEqualDeep.js +83 -0
- package/_baseIsMap.js +18 -0
- package/_baseIsMatch.js +62 -0
- package/_baseIsNaN.js +12 -0
- package/_baseIsNative.js +47 -0
- package/_baseIsRegExp.js +18 -0
- package/_baseIsSet.js +18 -0
- package/_baseIsTypedArray.js +60 -0
- package/_baseIteratee.js +31 -0
- package/_baseKeys.js +30 -0
- package/_baseKeysIn.js +33 -0
- package/_baseLodash.js +10 -0
- package/_baseLt.js +14 -0
- package/_baseMap.js +22 -0
- package/_baseMatches.js +22 -0
- package/_baseMatchesProperty.js +33 -0
- package/_baseMean.js +20 -0
- package/_baseMerge.js +42 -0
- package/_baseMergeDeep.js +94 -0
- package/_baseNth.js +20 -0
- package/_baseOrderBy.js +49 -0
- package/_basePick.js +19 -0
- package/_basePickBy.js +30 -0
- package/_baseProperty.js +14 -0
- package/_basePropertyDeep.js +16 -0
- package/_basePropertyOf.js +14 -0
- package/_basePullAll.js +51 -0
- package/_basePullAt.js +37 -0
- package/_baseRandom.js +18 -0
- package/_baseRange.js +28 -0
- package/_baseReduce.js +23 -0
- package/_baseRepeat.js +35 -0
- package/_baseRest.js +17 -0
- package/_baseSample.js +15 -0
- package/_baseSampleSize.js +18 -0
- package/_baseSet.js +51 -0
- package/_baseSetData.js +17 -0
- package/_baseSetToString.js +22 -0
- package/_baseShuffle.js +15 -0
- package/_baseSlice.js +31 -0
- package/_baseSome.js +22 -0
- package/_baseSortBy.js +21 -0
- package/_baseSortedIndex.js +42 -0
- package/_baseSortedIndexBy.js +67 -0
- package/_baseSortedUniq.js +30 -0
- package/_baseSum.js +24 -0
- package/_baseTimes.js +20 -0
- package/_baseToNumber.js +24 -0
- package/_baseToPairs.js +18 -0
- package/_baseToString.js +37 -0
- package/_baseTrim.js +19 -0
- package/_baseUnary.js +14 -0
- package/_baseUniq.js +72 -0
- package/_baseUnset.js +20 -0
- package/_baseUpdate.js +18 -0
- package/_baseValues.js +19 -0
- package/_baseWhile.js +26 -0
- package/_baseWrapperValue.js +25 -0
- package/_baseXor.js +36 -0
- package/_baseZipObject.js +23 -0
- package/_cacheHas.js +13 -0
- package/_castArrayLikeObject.js +14 -0
- package/_castFunction.js +14 -0
- package/_castPath.js +21 -0
- package/_castRest.js +14 -0
- package/_castSlice.js +18 -0
- package/_charsEndIndex.js +19 -0
- package/_charsStartIndex.js +20 -0
- package/_cloneArrayBuffer.js +16 -0
- package/_cloneBuffer.js +35 -0
- package/_cloneDataView.js +16 -0
- package/_cloneRegExp.js +17 -0
- package/_cloneSymbol.js +18 -0
- package/_cloneTypedArray.js +16 -0
- package/_compareAscending.js +41 -0
- package/_compareMultiple.js +44 -0
- package/_composeArgs.js +39 -0
- package/_composeArgsRight.js +41 -0
- package/_copyArray.js +20 -0
- package/_copyObject.js +40 -0
- package/_copySymbols.js +16 -0
- package/_copySymbolsIn.js +16 -0
- package/_coreJsData.js +6 -0
- package/_countHolders.js +21 -0
- package/_createAggregator.js +23 -0
- package/_createAssigner.js +37 -0
- package/_createBaseEach.js +32 -0
- package/_createBaseFor.js +25 -0
- package/_createBind.js +28 -0
- package/_createCaseFirst.js +33 -0
- package/_createCompounder.js +24 -0
- package/_createCtor.js +37 -0
- package/_createCurry.js +46 -0
- package/_createFind.js +25 -0
- package/_createFlow.js +78 -0
- package/_createHybrid.js +92 -0
- package/_createInverter.js +17 -0
- package/_createMathOperation.js +38 -0
- package/_createOver.js +27 -0
- package/_createPadding.js +33 -0
- package/_createPartial.js +43 -0
- package/_createRange.js +30 -0
- package/_createRecurry.js +56 -0
- package/_createRelationalOperation.js +20 -0
- package/_createRound.js +35 -0
- package/_createSet.js +19 -0
- package/_createToPairs.js +30 -0
- package/_createWrap.js +106 -0
- package/_customDefaultsAssignIn.js +29 -0
- package/_customDefaultsMerge.js +28 -0
- package/_customOmitClone.js +16 -0
- package/_deburrLetter.js +71 -0
- package/_defineProperty.js +11 -0
- package/_equalArrays.js +84 -0
- package/_equalByTag.js +112 -0
- package/_equalObjects.js +90 -0
- package/_escapeHtmlChar.js +21 -0
- package/_escapeStringChar.js +22 -0
- package/_flatRest.js +16 -0
- package/_freeGlobal.js +4 -0
- package/_getAllKeys.js +16 -0
- package/_getAllKeysIn.js +17 -0
- package/_getData.js +15 -0
- package/_getFuncName.js +31 -0
- package/_getHolder.js +13 -0
- package/_getMapData.js +18 -0
- package/_getMatchData.js +24 -0
- package/_getNative.js +17 -0
- package/_getPrototype.js +6 -0
- package/_getRawTag.js +46 -0
- package/_getSymbols.js +30 -0
- package/_getSymbolsIn.js +25 -0
- package/_getTag.js +58 -0
- package/_getValue.js +13 -0
- package/_getView.js +33 -0
- package/_getWrapDetails.js +17 -0
- package/_hasPath.js +39 -0
- package/_hasUnicode.js +26 -0
- package/_hasUnicodeWord.js +15 -0
- package/_hashClear.js +15 -0
- package/_hashDelete.js +17 -0
- package/_hashGet.js +30 -0
- package/_hashHas.js +23 -0
- package/_hashSet.js +23 -0
- package/_initCloneArray.js +26 -0
- package/_initCloneByTag.js +77 -0
- package/_initCloneObject.js +18 -0
- package/_insertWrapDetails.js +23 -0
- package/_isFlattenable.js +20 -0
- package/_isIndex.js +25 -0
- package/_isIterateeCall.js +30 -0
- package/_isKey.js +29 -0
- package/_isKeyable.js +15 -0
- package/_isLaziable.js +28 -0
- package/_isMaskable.js +14 -0
- package/_isMasked.js +20 -0
- package/_isPrototype.js +18 -0
- package/_isStrictComparable.js +15 -0
- package/_iteratorToArray.js +18 -0
- package/_lazyClone.js +23 -0
- package/_lazyReverse.js +23 -0
- package/_lazyValue.js +69 -0
- package/_listCacheClear.js +13 -0
- package/_listCacheDelete.js +35 -0
- package/_listCacheGet.js +19 -0
- package/_listCacheHas.js +16 -0
- package/_listCacheSet.js +26 -0
- package/_mapCacheClear.js +21 -0
- package/_mapCacheDelete.js +18 -0
- package/_mapCacheGet.js +16 -0
- package/_mapCacheHas.js +16 -0
- package/_mapCacheSet.js +22 -0
- package/_mapToArray.js +18 -0
- package/_matchesStrictComparable.js +20 -0
- package/_memoizeCapped.js +26 -0
- package/_mergeData.js +90 -0
- package/_metaMap.js +6 -0
- package/_nativeCreate.js +6 -0
- package/_nativeKeys.js +6 -0
- package/_nativeKeysIn.js +20 -0
- package/_nodeUtil.js +30 -0
- package/_objectToString.js +22 -0
- package/_overArg.js +15 -0
- package/_overRest.js +36 -0
- package/_parent.js +16 -0
- package/_reEscape.js +4 -0
- package/_reEvaluate.js +4 -0
- package/_reInterpolate.js +4 -0
- package/_realNames.js +4 -0
- package/_reorder.js +29 -0
- package/_replaceHolders.js +29 -0
- package/_root.js +9 -0
- package/_safeGet.js +21 -0
- package/_setCacheAdd.js +19 -0
- package/_setCacheHas.js +14 -0
- package/_setData.js +20 -0
- package/_setToArray.js +18 -0
- package/_setToPairs.js +18 -0
- package/_setToString.js +14 -0
- package/_setWrapToString.js +21 -0
- package/_shortOut.js +37 -0
- package/_shuffleSelf.js +28 -0
- package/_stackClear.js +15 -0
- package/_stackDelete.js +18 -0
- package/_stackGet.js +14 -0
- package/_stackHas.js +14 -0
- package/_stackSet.js +34 -0
- package/_strictIndexOf.js +23 -0
- package/_strictLastIndexOf.js +21 -0
- package/_stringSize.js +18 -0
- package/_stringToArray.js +18 -0
- package/_stringToPath.js +27 -0
- package/_toKey.js +21 -0
- package/_toSource.js +26 -0
- package/_trimmedEndIndex.js +19 -0
- package/_unescapeHtmlChar.js +21 -0
- package/_unicodeSize.js +44 -0
- package/_unicodeToArray.js +40 -0
- package/_unicodeWords.js +69 -0
- package/_updateWrapDetails.js +46 -0
- package/_wrapperClone.js +23 -0
- package/add.js +22 -0
- package/after.js +42 -0
- package/array.js +67 -0
- package/ary.js +29 -0
- package/assign.js +58 -0
- package/assignIn.js +40 -0
- package/assignInWith.js +38 -0
- package/assignWith.js +37 -0
- package/at.js +23 -0
- package/attempt.js +35 -0
- package/before.js +40 -0
- package/bind.js +57 -0
- package/bindAll.js +41 -0
- package/bindKey.js +68 -0
- package/camelCase.js +29 -0
- package/capitalize.js +23 -0
- package/castArray.js +44 -0
- package/ceil.js +26 -0
- package/chain.js +38 -0
- package/chunk.js +50 -0
- package/clamp.js +39 -0
- package/clone.js +36 -0
- package/cloneDeep.js +29 -0
- package/cloneDeepWith.js +40 -0
- package/cloneWith.js +42 -0
- package/collection.js +30 -0
- package/commit.js +33 -0
- package/compact.js +31 -0
- package/concat.js +43 -0
- package/cond.js +60 -0
- package/conforms.js +35 -0
- package/conformsTo.js +32 -0
- package/constant.js +26 -0
- package/core.js +3877 -0
- package/core.min.js +29 -0
- package/countBy.js +40 -0
- package/create.js +43 -0
- package/curry.js +57 -0
- package/curryRight.js +54 -0
- package/date.js +3 -0
- package/debounce.js +191 -0
- package/deburr.js +45 -0
- package/defaultTo.js +25 -0
- package/defaults.js +64 -0
- package/defaultsDeep.js +30 -0
- package/defer.js +26 -0
- package/delay.js +28 -0
- package/difference.js +33 -0
- package/differenceBy.js +44 -0
- package/differenceWith.js +40 -0
- package/divide.js +22 -0
- package/drop.js +38 -0
- package/dropRight.js +39 -0
- package/dropRightWhile.js +45 -0
- package/dropWhile.js +45 -0
- package/each.js +1 -0
- package/eachRight.js +1 -0
- package/endsWith.js +43 -0
- package/entries.js +1 -0
- package/entriesIn.js +1 -0
- package/eq.js +37 -0
- package/escape.js +43 -0
- package/escapeRegExp.js +32 -0
- package/every.js +56 -0
- package/extend.js +1 -0
- package/extendWith.js +1 -0
- package/fill.js +45 -0
- package/filter.js +52 -0
- package/find.js +42 -0
- package/findIndex.js +55 -0
- package/findKey.js +44 -0
- package/findLast.js +25 -0
- package/findLastIndex.js +59 -0
- package/findLastKey.js +44 -0
- package/first.js +1 -0
- package/flatMap.js +29 -0
- package/flatMapDeep.js +31 -0
- package/flatMapDepth.js +31 -0
- package/flatten.js +22 -0
- package/flattenDeep.js +25 -0
- package/flattenDepth.js +33 -0
- package/flip.js +28 -0
- package/floor.js +26 -0
- package/flow.js +27 -0
- package/flowRight.js +26 -0
- package/forEach.js +41 -0
- package/forEachRight.js +31 -0
- package/forIn.js +39 -0
- package/forInRight.js +37 -0
- package/forOwn.js +36 -0
- package/forOwnRight.js +34 -0
- package/fp/F.js +1 -0
- package/fp/T.js +1 -0
- package/fp/__.js +1 -0
- package/fp/_baseConvert.js +569 -0
- package/fp/_convertBrowser.js +18 -0
- package/fp/_falseOptions.js +7 -0
- package/fp/_mapping.js +358 -0
- package/fp/_util.js +16 -0
- package/fp/add.js +5 -0
- package/fp/after.js +5 -0
- package/fp/all.js +1 -0
- package/fp/allPass.js +1 -0
- package/fp/always.js +1 -0
- package/fp/any.js +1 -0
- package/fp/anyPass.js +1 -0
- package/fp/apply.js +1 -0
- package/fp/array.js +2 -0
- package/fp/ary.js +5 -0
- package/fp/assign.js +5 -0
- package/fp/assignAll.js +5 -0
- package/fp/assignAllWith.js +5 -0
- package/fp/assignIn.js +5 -0
- package/fp/assignInAll.js +5 -0
- package/fp/assignInAllWith.js +5 -0
- package/fp/assignInWith.js +5 -0
- package/fp/assignWith.js +5 -0
- package/fp/assoc.js +1 -0
- package/fp/assocPath.js +1 -0
- package/fp/at.js +5 -0
- package/fp/attempt.js +5 -0
- package/fp/before.js +5 -0
- package/fp/bind.js +5 -0
- package/fp/bindAll.js +5 -0
- package/fp/bindKey.js +5 -0
- package/fp/camelCase.js +5 -0
- package/fp/capitalize.js +5 -0
- package/fp/castArray.js +5 -0
- package/fp/ceil.js +5 -0
- package/fp/chain.js +5 -0
- package/fp/chunk.js +5 -0
- package/fp/clamp.js +5 -0
- package/fp/clone.js +5 -0
- package/fp/cloneDeep.js +5 -0
- package/fp/cloneDeepWith.js +5 -0
- package/fp/cloneWith.js +5 -0
- package/fp/collection.js +2 -0
- package/fp/commit.js +5 -0
- package/fp/compact.js +5 -0
- package/fp/complement.js +1 -0
- package/fp/compose.js +1 -0
- package/fp/concat.js +5 -0
- package/fp/cond.js +5 -0
- package/fp/conforms.js +1 -0
- package/fp/conformsTo.js +5 -0
- package/fp/constant.js +5 -0
- package/fp/contains.js +1 -0
- package/fp/convert.js +18 -0
- package/fp/countBy.js +5 -0
- package/fp/create.js +5 -0
- package/fp/curry.js +5 -0
- package/fp/curryN.js +5 -0
- package/fp/curryRight.js +5 -0
- package/fp/curryRightN.js +5 -0
- package/fp/date.js +2 -0
- package/fp/debounce.js +5 -0
- package/fp/deburr.js +5 -0
- package/fp/defaultTo.js +5 -0
- package/fp/defaults.js +5 -0
- package/fp/defaultsAll.js +5 -0
- package/fp/defaultsDeep.js +5 -0
- package/fp/defaultsDeepAll.js +5 -0
- package/fp/defer.js +5 -0
- package/fp/delay.js +5 -0
- package/fp/difference.js +5 -0
- package/fp/differenceBy.js +5 -0
- package/fp/differenceWith.js +5 -0
- package/fp/dissoc.js +1 -0
- package/fp/dissocPath.js +1 -0
- package/fp/divide.js +5 -0
- package/fp/drop.js +5 -0
- package/fp/dropLast.js +1 -0
- package/fp/dropLastWhile.js +1 -0
- package/fp/dropRight.js +5 -0
- package/fp/dropRightWhile.js +5 -0
- package/fp/dropWhile.js +5 -0
- package/fp/each.js +1 -0
- package/fp/eachRight.js +1 -0
- package/fp/endsWith.js +5 -0
- package/fp/entries.js +1 -0
- package/fp/entriesIn.js +1 -0
- package/fp/eq.js +5 -0
- package/fp/equals.js +1 -0
- package/fp/escape.js +5 -0
- package/fp/escapeRegExp.js +5 -0
- package/fp/every.js +5 -0
- package/fp/extend.js +1 -0
- package/fp/extendAll.js +1 -0
- package/fp/extendAllWith.js +1 -0
- package/fp/extendWith.js +1 -0
- package/fp/fill.js +5 -0
- package/fp/filter.js +5 -0
- package/fp/find.js +5 -0
- package/fp/findFrom.js +5 -0
- package/fp/findIndex.js +5 -0
- package/fp/findIndexFrom.js +5 -0
- package/fp/findKey.js +5 -0
- package/fp/findLast.js +5 -0
- package/fp/findLastFrom.js +5 -0
- package/fp/findLastIndex.js +5 -0
- package/fp/findLastIndexFrom.js +5 -0
- package/fp/findLastKey.js +5 -0
- package/fp/first.js +1 -0
- package/fp/flatMap.js +5 -0
- package/fp/flatMapDeep.js +5 -0
- package/fp/flatMapDepth.js +5 -0
- package/fp/flatten.js +5 -0
- package/fp/flattenDeep.js +5 -0
- package/fp/flattenDepth.js +5 -0
- package/fp/flip.js +5 -0
- package/fp/floor.js +5 -0
- package/fp/flow.js +5 -0
- package/fp/flowRight.js +5 -0
- package/fp/forEach.js +5 -0
- package/fp/forEachRight.js +5 -0
- package/fp/forIn.js +5 -0
- package/fp/forInRight.js +5 -0
- package/fp/forOwn.js +5 -0
- package/fp/forOwnRight.js +5 -0
- package/fp/fromPairs.js +5 -0
- package/fp/function.js +2 -0
- package/fp/functions.js +5 -0
- package/fp/functionsIn.js +5 -0
- package/fp/get.js +5 -0
- package/fp/getOr.js +5 -0
- package/fp/groupBy.js +5 -0
- package/fp/gt.js +5 -0
- package/fp/gte.js +5 -0
- package/fp/has.js +5 -0
- package/fp/hasIn.js +5 -0
- package/fp/head.js +5 -0
- package/fp/identical.js +1 -0
- package/fp/identity.js +5 -0
- package/fp/inRange.js +5 -0
- package/fp/includes.js +5 -0
- package/fp/includesFrom.js +5 -0
- package/fp/indexBy.js +1 -0
- package/fp/indexOf.js +5 -0
- package/fp/indexOfFrom.js +5 -0
- package/fp/init.js +1 -0
- package/fp/initial.js +5 -0
- package/fp/intersection.js +5 -0
- package/fp/intersectionBy.js +5 -0
- package/fp/intersectionWith.js +5 -0
- package/fp/invert.js +5 -0
- package/fp/invertBy.js +5 -0
- package/fp/invertObj.js +1 -0
- package/fp/invoke.js +5 -0
- package/fp/invokeArgs.js +5 -0
- package/fp/invokeArgsMap.js +5 -0
- package/fp/invokeMap.js +5 -0
- package/fp/isArguments.js +5 -0
- package/fp/isArray.js +5 -0
- package/fp/isArrayBuffer.js +5 -0
- package/fp/isArrayLike.js +5 -0
- package/fp/isArrayLikeObject.js +5 -0
- package/fp/isBoolean.js +5 -0
- package/fp/isBuffer.js +5 -0
- package/fp/isDate.js +5 -0
- package/fp/isElement.js +5 -0
- package/fp/isEmpty.js +5 -0
- package/fp/isEqual.js +5 -0
- package/fp/isEqualWith.js +5 -0
- package/fp/isError.js +5 -0
- package/fp/isFinite.js +5 -0
- package/fp/isFunction.js +5 -0
- package/fp/isInteger.js +5 -0
- package/fp/isLength.js +5 -0
- package/fp/isMap.js +5 -0
- package/fp/isMatch.js +5 -0
- package/fp/isMatchWith.js +5 -0
- package/fp/isNaN.js +5 -0
- package/fp/isNative.js +5 -0
- package/fp/isNil.js +5 -0
- package/fp/isNull.js +5 -0
- package/fp/isNumber.js +5 -0
- package/fp/isObject.js +5 -0
- package/fp/isObjectLike.js +5 -0
- package/fp/isPlainObject.js +5 -0
- package/fp/isRegExp.js +5 -0
- package/fp/isSafeInteger.js +5 -0
- package/fp/isSet.js +5 -0
- package/fp/isString.js +5 -0
- package/fp/isSymbol.js +5 -0
- package/fp/isTypedArray.js +5 -0
- package/fp/isUndefined.js +5 -0
- package/fp/isWeakMap.js +5 -0
- package/fp/isWeakSet.js +5 -0
- package/fp/iteratee.js +5 -0
- package/fp/join.js +5 -0
- package/fp/juxt.js +1 -0
- package/fp/kebabCase.js +5 -0
- package/fp/keyBy.js +5 -0
- package/fp/keys.js +5 -0
- package/fp/keysIn.js +5 -0
- package/fp/lang.js +2 -0
- package/fp/last.js +5 -0
- package/fp/lastIndexOf.js +5 -0
- package/fp/lastIndexOfFrom.js +5 -0
- package/fp/lowerCase.js +5 -0
- package/fp/lowerFirst.js +5 -0
- package/fp/lt.js +5 -0
- package/fp/lte.js +5 -0
- package/fp/map.js +5 -0
- package/fp/mapKeys.js +5 -0
- package/fp/mapValues.js +5 -0
- package/fp/matches.js +1 -0
- package/fp/matchesProperty.js +5 -0
- package/fp/math.js +2 -0
- package/fp/max.js +5 -0
- package/fp/maxBy.js +5 -0
- package/fp/mean.js +5 -0
- package/fp/meanBy.js +5 -0
- package/fp/memoize.js +5 -0
- package/fp/merge.js +5 -0
- package/fp/mergeAll.js +5 -0
- package/fp/mergeAllWith.js +5 -0
- package/fp/mergeWith.js +5 -0
- package/fp/method.js +5 -0
- package/fp/methodOf.js +5 -0
- package/fp/min.js +5 -0
- package/fp/minBy.js +5 -0
- package/fp/mixin.js +5 -0
- package/fp/multiply.js +5 -0
- package/fp/nAry.js +1 -0
- package/fp/negate.js +5 -0
- package/fp/next.js +5 -0
- package/fp/noop.js +5 -0
- package/fp/now.js +5 -0
- package/fp/nth.js +5 -0
- package/fp/nthArg.js +5 -0
- package/fp/number.js +2 -0
- package/fp/object.js +2 -0
- package/fp/omit.js +5 -0
- package/fp/omitAll.js +1 -0
- package/fp/omitBy.js +5 -0
- package/fp/once.js +5 -0
- package/fp/orderBy.js +5 -0
- package/fp/over.js +5 -0
- package/fp/overArgs.js +5 -0
- package/fp/overEvery.js +5 -0
- package/fp/overSome.js +5 -0
- package/fp/pad.js +5 -0
- package/fp/padChars.js +5 -0
- package/fp/padCharsEnd.js +5 -0
- package/fp/padCharsStart.js +5 -0
- package/fp/padEnd.js +5 -0
- package/fp/padStart.js +5 -0
- package/fp/parseInt.js +5 -0
- package/fp/partial.js +5 -0
- package/fp/partialRight.js +5 -0
- package/fp/partition.js +5 -0
- package/fp/path.js +1 -0
- package/fp/pathEq.js +1 -0
- package/fp/pathOr.js +1 -0
- package/fp/paths.js +1 -0
- package/fp/pick.js +5 -0
- package/fp/pickAll.js +1 -0
- package/fp/pickBy.js +5 -0
- package/fp/pipe.js +1 -0
- package/fp/placeholder.js +6 -0
- package/fp/plant.js +5 -0
- package/fp/pluck.js +1 -0
- package/fp/prop.js +1 -0
- package/fp/propEq.js +1 -0
- package/fp/propOr.js +1 -0
- package/fp/property.js +1 -0
- package/fp/propertyOf.js +5 -0
- package/fp/props.js +1 -0
- package/fp/pull.js +5 -0
- package/fp/pullAll.js +5 -0
- package/fp/pullAllBy.js +5 -0
- package/fp/pullAllWith.js +5 -0
- package/fp/pullAt.js +5 -0
- package/fp/random.js +5 -0
- package/fp/range.js +5 -0
- package/fp/rangeRight.js +5 -0
- package/fp/rangeStep.js +5 -0
- package/fp/rangeStepRight.js +5 -0
- package/fp/rearg.js +5 -0
- package/fp/reduce.js +5 -0
- package/fp/reduceRight.js +5 -0
- package/fp/reject.js +5 -0
- package/fp/remove.js +5 -0
- package/fp/repeat.js +5 -0
- package/fp/replace.js +5 -0
- package/fp/rest.js +5 -0
- package/fp/restFrom.js +5 -0
- package/fp/result.js +5 -0
- package/fp/reverse.js +5 -0
- package/fp/round.js +5 -0
- package/fp/sample.js +5 -0
- package/fp/sampleSize.js +5 -0
- package/fp/seq.js +2 -0
- package/fp/set.js +5 -0
- package/fp/setWith.js +5 -0
- package/fp/shuffle.js +5 -0
- package/fp/size.js +5 -0
- package/fp/slice.js +5 -0
- package/fp/snakeCase.js +5 -0
- package/fp/some.js +5 -0
- package/fp/sortBy.js +5 -0
- package/fp/sortedIndex.js +5 -0
- package/fp/sortedIndexBy.js +5 -0
- package/fp/sortedIndexOf.js +5 -0
- package/fp/sortedLastIndex.js +5 -0
- package/fp/sortedLastIndexBy.js +5 -0
- package/fp/sortedLastIndexOf.js +5 -0
- package/fp/sortedUniq.js +5 -0
- package/fp/sortedUniqBy.js +5 -0
- package/fp/split.js +5 -0
- package/fp/spread.js +5 -0
- package/fp/spreadFrom.js +5 -0
- package/fp/startCase.js +5 -0
- package/fp/startsWith.js +5 -0
- package/fp/string.js +2 -0
- package/fp/stubArray.js +5 -0
- package/fp/stubFalse.js +5 -0
- package/fp/stubObject.js +5 -0
- package/fp/stubString.js +5 -0
- package/fp/stubTrue.js +5 -0
- package/fp/subtract.js +5 -0
- package/fp/sum.js +5 -0
- package/fp/sumBy.js +5 -0
- package/fp/symmetricDifference.js +1 -0
- package/fp/symmetricDifferenceBy.js +1 -0
- package/fp/symmetricDifferenceWith.js +1 -0
- package/fp/tail.js +5 -0
- package/fp/take.js +5 -0
- package/fp/takeLast.js +1 -0
- package/fp/takeLastWhile.js +1 -0
- package/fp/takeRight.js +5 -0
- package/fp/takeRightWhile.js +5 -0
- package/fp/takeWhile.js +5 -0
- package/fp/tap.js +5 -0
- package/fp/template.js +5 -0
- package/fp/templateSettings.js +5 -0
- package/fp/throttle.js +5 -0
- package/fp/thru.js +5 -0
- package/fp/times.js +5 -0
- package/fp/toArray.js +5 -0
- package/fp/toFinite.js +5 -0
- package/fp/toInteger.js +5 -0
- package/fp/toIterator.js +5 -0
- package/fp/toJSON.js +5 -0
- package/fp/toLength.js +5 -0
- package/fp/toLower.js +5 -0
- package/fp/toNumber.js +5 -0
- package/fp/toPairs.js +5 -0
- package/fp/toPairsIn.js +5 -0
- package/fp/toPath.js +5 -0
- package/fp/toPlainObject.js +5 -0
- package/fp/toSafeInteger.js +5 -0
- package/fp/toString.js +5 -0
- package/fp/toUpper.js +5 -0
- package/fp/transform.js +5 -0
- package/fp/trim.js +5 -0
- package/fp/trimChars.js +5 -0
- package/fp/trimCharsEnd.js +5 -0
- package/fp/trimCharsStart.js +5 -0
- package/fp/trimEnd.js +5 -0
- package/fp/trimStart.js +5 -0
- package/fp/truncate.js +5 -0
- package/fp/unapply.js +1 -0
- package/fp/unary.js +5 -0
- package/fp/unescape.js +5 -0
- package/fp/union.js +5 -0
- package/fp/unionBy.js +5 -0
- package/fp/unionWith.js +5 -0
- package/fp/uniq.js +5 -0
- package/fp/uniqBy.js +5 -0
- package/fp/uniqWith.js +5 -0
- package/fp/uniqueId.js +5 -0
- package/fp/unnest.js +1 -0
- package/fp/unset.js +5 -0
- package/fp/unzip.js +5 -0
- package/fp/unzipWith.js +5 -0
- package/fp/update.js +5 -0
- package/fp/updateWith.js +5 -0
- package/fp/upperCase.js +5 -0
- package/fp/upperFirst.js +5 -0
- package/fp/useWith.js +1 -0
- package/fp/util.js +2 -0
- package/fp/value.js +5 -0
- package/fp/valueOf.js +5 -0
- package/fp/values.js +5 -0
- package/fp/valuesIn.js +5 -0
- package/fp/where.js +1 -0
- package/fp/whereEq.js +1 -0
- package/fp/without.js +5 -0
- package/fp/words.js +5 -0
- package/fp/wrap.js +5 -0
- package/fp/wrapperAt.js +5 -0
- package/fp/wrapperChain.js +5 -0
- package/fp/wrapperLodash.js +5 -0
- package/fp/wrapperReverse.js +5 -0
- package/fp/wrapperValue.js +5 -0
- package/fp/xor.js +5 -0
- package/fp/xorBy.js +5 -0
- package/fp/xorWith.js +5 -0
- package/fp/zip.js +5 -0
- package/fp/zipAll.js +5 -0
- package/fp/zipObj.js +1 -0
- package/fp/zipObject.js +5 -0
- package/fp/zipObjectDeep.js +5 -0
- package/fp/zipWith.js +5 -0
- package/fp.js +2 -0
- package/fromPairs.js +28 -0
- package/function.js +25 -0
- package/functions.js +31 -0
- package/functionsIn.js +31 -0
- package/get.js +33 -0
- package/groupBy.js +41 -0
- package/gt.js +29 -0
- package/gte.js +30 -0
- package/has.js +35 -0
- package/hasIn.js +34 -0
- package/head.js +23 -0
- package/identity.js +21 -0
- package/inRange.js +55 -0
- package/includes.js +53 -0
- package/index.js +1 -0
- package/indexOf.js +42 -0
- package/initial.js +22 -0
- package/intersection.js +30 -0
- package/intersectionBy.js +45 -0
- package/intersectionWith.js +41 -0
- package/invert.js +42 -0
- package/invertBy.js +56 -0
- package/invoke.js +24 -0
- package/invokeMap.js +41 -0
- package/isArguments.js +36 -0
- package/isArray.js +26 -0
- package/isArrayBuffer.js +27 -0
- package/isArrayLike.js +33 -0
- package/isArrayLikeObject.js +33 -0
- package/isBoolean.js +29 -0
- package/isBuffer.js +38 -0
- package/isDate.js +27 -0
- package/isElement.js +25 -0
- package/isEmpty.js +77 -0
- package/isEqual.js +35 -0
- package/isEqualWith.js +41 -0
- package/isError.js +36 -0
- package/isFinite.js +36 -0
- package/isFunction.js +37 -0
- package/isInteger.js +33 -0
- package/isLength.js +35 -0
- package/isMap.js +27 -0
- package/isMatch.js +36 -0
- package/isMatchWith.js +41 -0
- package/isNaN.js +38 -0
- package/isNative.js +40 -0
- package/isNil.js +25 -0
- package/isNull.js +22 -0
- package/isNumber.js +38 -0
- package/isObject.js +31 -0
- package/isObjectLike.js +29 -0
- package/isPlainObject.js +62 -0
- package/isRegExp.js +27 -0
- package/isSafeInteger.js +37 -0
- package/isSet.js +27 -0
- package/isString.js +30 -0
- package/isSymbol.js +29 -0
- package/isTypedArray.js +27 -0
- package/isUndefined.js +22 -0
- package/isWeakMap.js +28 -0
- package/isWeakSet.js +28 -0
- package/iteratee.js +53 -0
- package/join.js +26 -0
- package/kebabCase.js +28 -0
- package/keyBy.js +36 -0
- package/keys.js +37 -0
- package/keysIn.js +32 -0
- package/lang.js +58 -0
- package/last.js +20 -0
- package/lastIndexOf.js +46 -0
- package/lodash.js +17209 -0
- package/lodash.min.js +138 -0
- package/lowerCase.js +27 -0
- package/lowerFirst.js +22 -0
- package/lt.js +29 -0
- package/lte.js +30 -0
- package/map.js +53 -0
- package/mapKeys.js +36 -0
- package/mapValues.js +43 -0
- package/matches.js +46 -0
- package/matchesProperty.js +44 -0
- package/math.js +17 -0
- package/max.js +29 -0
- package/maxBy.js +34 -0
- package/mean.js +22 -0
- package/meanBy.js +31 -0
- package/memoize.js +73 -0
- package/merge.js +39 -0
- package/mergeWith.js +39 -0
- package/method.js +34 -0
- package/methodOf.js +33 -0
- package/min.js +29 -0
- package/minBy.js +34 -0
- package/mixin.js +74 -0
- package/multiply.js +22 -0
- package/negate.js +40 -0
- package/next.js +35 -0
- package/noop.js +17 -0
- package/now.js +23 -0
- package/nth.js +29 -0
- package/nthArg.js +32 -0
- package/number.js +5 -0
- package/object.js +49 -0
- package/omit.js +57 -0
- package/omitBy.js +29 -0
- package/once.js +25 -0
- package/orderBy.js +47 -0
- package/over.js +24 -0
- package/overArgs.js +61 -0
- package/overEvery.js +34 -0
- package/overSome.js +37 -0
- package/package.json +27 -0
- package/pad.js +49 -0
- package/padEnd.js +39 -0
- package/padStart.js +39 -0
- package/parseInt.js +43 -0
- package/partial.js +50 -0
- package/partialRight.js +49 -0
- package/partition.js +43 -0
- package/pick.js +25 -0
- package/pickBy.js +37 -0
- package/plant.js +48 -0
- package/property.js +32 -0
- package/propertyOf.js +30 -0
- package/pull.js +29 -0
- package/pullAll.js +29 -0
- package/pullAllBy.js +33 -0
- package/pullAllWith.js +32 -0
- package/pullAt.js +43 -0
- package/random.js +82 -0
- package/range.js +46 -0
- package/rangeRight.js +41 -0
- package/rearg.js +33 -0
- package/reduce.js +51 -0
- package/reduceRight.js +36 -0
- package/reject.js +46 -0
- package/remove.js +53 -0
- package/repeat.js +37 -0
- package/replace.js +29 -0
- package/rest.js +40 -0
- package/result.js +56 -0
- package/reverse.js +34 -0
- package/round.js +26 -0
- package/sample.js +24 -0
- package/sampleSize.js +37 -0
- package/seq.js +16 -0
- package/set.js +35 -0
- package/setWith.js +32 -0
- package/shuffle.js +25 -0
- package/size.js +46 -0
- package/slice.js +37 -0
- package/snakeCase.js +28 -0
- package/some.js +51 -0
- package/sortBy.js +48 -0
- package/sortedIndex.js +24 -0
- package/sortedIndexBy.js +33 -0
- package/sortedIndexOf.js +31 -0
- package/sortedLastIndex.js +25 -0
- package/sortedLastIndexBy.js +33 -0
- package/sortedLastIndexOf.js +31 -0
- package/sortedUniq.js +24 -0
- package/sortedUniqBy.js +26 -0
- package/split.js +52 -0
- package/spread.js +63 -0
- package/startCase.js +29 -0
- package/startsWith.js +39 -0
- package/string.js +33 -0
- package/stubArray.js +23 -0
- package/stubFalse.js +18 -0
- package/stubObject.js +23 -0
- package/stubString.js +18 -0
- package/stubTrue.js +18 -0
- package/subtract.js +22 -0
- package/sum.js +24 -0
- package/sumBy.js +33 -0
- package/tail.js +22 -0
- package/take.js +37 -0
- package/takeRight.js +39 -0
- package/takeRightWhile.js +45 -0
- package/takeWhile.js +45 -0
- package/tap.js +29 -0
- package/template.js +272 -0
- package/templateSettings.js +67 -0
- package/throttle.js +69 -0
- package/thru.js +28 -0
- package/times.js +51 -0
- package/toArray.js +58 -0
- package/toFinite.js +42 -0
- package/toInteger.js +36 -0
- package/toIterator.js +23 -0
- package/toJSON.js +1 -0
- package/toLength.js +38 -0
- package/toLower.js +28 -0
- package/toNumber.js +64 -0
- package/toPairs.js +30 -0
- package/toPairsIn.js +30 -0
- package/toPath.js +33 -0
- package/toPlainObject.js +32 -0
- package/toSafeInteger.js +37 -0
- package/toString.js +28 -0
- package/toUpper.js +28 -0
- package/transform.js +65 -0
- package/trim.js +47 -0
- package/trimEnd.js +41 -0
- package/trimStart.js +43 -0
- package/truncate.js +111 -0
- package/unary.js +22 -0
- package/unescape.js +34 -0
- package/union.js +26 -0
- package/unionBy.js +39 -0
- package/unionWith.js +34 -0
- package/uniq.js +25 -0
- package/uniqBy.js +31 -0
- package/uniqWith.js +28 -0
- package/uniqueId.js +28 -0
- package/unset.js +34 -0
- package/unzip.js +45 -0
- package/unzipWith.js +39 -0
- package/update.js +35 -0
- package/updateWith.js +33 -0
- package/upperCase.js +27 -0
- package/upperFirst.js +22 -0
- package/util.js +34 -0
- package/value.js +1 -0
- package/valueOf.js +1 -0
- package/values.js +34 -0
- package/valuesIn.js +32 -0
- package/without.js +31 -0
- package/words.js +35 -0
- package/wrap.js +30 -0
- package/wrapperAt.js +48 -0
- package/wrapperChain.js +34 -0
- package/wrapperLodash.js +147 -0
- package/wrapperReverse.js +44 -0
- package/wrapperValue.js +21 -0
- package/xor.js +28 -0
- package/xorBy.js +39 -0
- package/xorWith.js +34 -0
- package/zip.js +22 -0
- package/zipObject.js +24 -0
- package/zipObjectDeep.js +23 -0
- package/zipWith.js +32 -0
package/rearg.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var createWrap = require('./_createWrap'),
|
|
2
|
+
flatRest = require('./_flatRest');
|
|
3
|
+
|
|
4
|
+
/** Used to compose bitmasks for function metadata. */
|
|
5
|
+
var WRAP_REARG_FLAG = 256;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Creates a function that invokes `func` with arguments arranged according
|
|
9
|
+
* to the specified `indexes` where the argument value at the first index is
|
|
10
|
+
* provided as the first argument, the argument value at the second index is
|
|
11
|
+
* provided as the second argument, and so on.
|
|
12
|
+
*
|
|
13
|
+
* @static
|
|
14
|
+
* @memberOf _
|
|
15
|
+
* @since 3.0.0
|
|
16
|
+
* @category Function
|
|
17
|
+
* @param {Function} func The function to rearrange arguments for.
|
|
18
|
+
* @param {...(number|number[])} indexes The arranged argument indexes.
|
|
19
|
+
* @returns {Function} Returns the new function.
|
|
20
|
+
* @example
|
|
21
|
+
*
|
|
22
|
+
* var rearged = _.rearg(function(a, b, c) {
|
|
23
|
+
* return [a, b, c];
|
|
24
|
+
* }, [2, 0, 1]);
|
|
25
|
+
*
|
|
26
|
+
* rearged('b', 'c', 'a')
|
|
27
|
+
* // => ['a', 'b', 'c']
|
|
28
|
+
*/
|
|
29
|
+
var rearg = flatRest(function(func, indexes) {
|
|
30
|
+
return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
module.exports = rearg;
|
package/reduce.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
var arrayReduce = require('./_arrayReduce'),
|
|
2
|
+
baseEach = require('./_baseEach'),
|
|
3
|
+
baseIteratee = require('./_baseIteratee'),
|
|
4
|
+
baseReduce = require('./_baseReduce'),
|
|
5
|
+
isArray = require('./isArray');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Reduces `collection` to a value which is the accumulated result of running
|
|
9
|
+
* each element in `collection` thru `iteratee`, where each successive
|
|
10
|
+
* invocation is supplied the return value of the previous. If `accumulator`
|
|
11
|
+
* is not given, the first element of `collection` is used as the initial
|
|
12
|
+
* value. The iteratee is invoked with four arguments:
|
|
13
|
+
* (accumulator, value, index|key, collection).
|
|
14
|
+
*
|
|
15
|
+
* Many lodash methods are guarded to work as iteratees for methods like
|
|
16
|
+
* `_.reduce`, `_.reduceRight`, and `_.transform`.
|
|
17
|
+
*
|
|
18
|
+
* The guarded methods are:
|
|
19
|
+
* `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,
|
|
20
|
+
* and `sortBy`
|
|
21
|
+
*
|
|
22
|
+
* @static
|
|
23
|
+
* @memberOf _
|
|
24
|
+
* @since 0.1.0
|
|
25
|
+
* @category Collection
|
|
26
|
+
* @param {Array|Object} collection The collection to iterate over.
|
|
27
|
+
* @param {Function} [iteratee=_.identity] The function invoked per iteration.
|
|
28
|
+
* @param {*} [accumulator] The initial value.
|
|
29
|
+
* @returns {*} Returns the accumulated value.
|
|
30
|
+
* @see _.reduceRight
|
|
31
|
+
* @example
|
|
32
|
+
*
|
|
33
|
+
* _.reduce([1, 2], function(sum, n) {
|
|
34
|
+
* return sum + n;
|
|
35
|
+
* }, 0);
|
|
36
|
+
* // => 3
|
|
37
|
+
*
|
|
38
|
+
* _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
|
|
39
|
+
* (result[value] || (result[value] = [])).push(key);
|
|
40
|
+
* return result;
|
|
41
|
+
* }, {});
|
|
42
|
+
* // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)
|
|
43
|
+
*/
|
|
44
|
+
function reduce(collection, iteratee, accumulator) {
|
|
45
|
+
var func = isArray(collection) ? arrayReduce : baseReduce,
|
|
46
|
+
initAccum = arguments.length < 3;
|
|
47
|
+
|
|
48
|
+
return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
module.exports = reduce;
|
package/reduceRight.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
var arrayReduceRight = require('./_arrayReduceRight'),
|
|
2
|
+
baseEachRight = require('./_baseEachRight'),
|
|
3
|
+
baseIteratee = require('./_baseIteratee'),
|
|
4
|
+
baseReduce = require('./_baseReduce'),
|
|
5
|
+
isArray = require('./isArray');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* This method is like `_.reduce` except that it iterates over elements of
|
|
9
|
+
* `collection` from right to left.
|
|
10
|
+
*
|
|
11
|
+
* @static
|
|
12
|
+
* @memberOf _
|
|
13
|
+
* @since 0.1.0
|
|
14
|
+
* @category Collection
|
|
15
|
+
* @param {Array|Object} collection The collection to iterate over.
|
|
16
|
+
* @param {Function} [iteratee=_.identity] The function invoked per iteration.
|
|
17
|
+
* @param {*} [accumulator] The initial value.
|
|
18
|
+
* @returns {*} Returns the accumulated value.
|
|
19
|
+
* @see _.reduce
|
|
20
|
+
* @example
|
|
21
|
+
*
|
|
22
|
+
* var array = [[0, 1], [2, 3], [4, 5]];
|
|
23
|
+
*
|
|
24
|
+
* _.reduceRight(array, function(flattened, other) {
|
|
25
|
+
* return flattened.concat(other);
|
|
26
|
+
* }, []);
|
|
27
|
+
* // => [4, 5, 2, 3, 0, 1]
|
|
28
|
+
*/
|
|
29
|
+
function reduceRight(collection, iteratee, accumulator) {
|
|
30
|
+
var func = isArray(collection) ? arrayReduceRight : baseReduce,
|
|
31
|
+
initAccum = arguments.length < 3;
|
|
32
|
+
|
|
33
|
+
return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
module.exports = reduceRight;
|
package/reject.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
var arrayFilter = require('./_arrayFilter'),
|
|
2
|
+
baseFilter = require('./_baseFilter'),
|
|
3
|
+
baseIteratee = require('./_baseIteratee'),
|
|
4
|
+
isArray = require('./isArray'),
|
|
5
|
+
negate = require('./negate');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The opposite of `_.filter`; this method returns the elements of `collection`
|
|
9
|
+
* that `predicate` does **not** return truthy for.
|
|
10
|
+
*
|
|
11
|
+
* @static
|
|
12
|
+
* @memberOf _
|
|
13
|
+
* @since 0.1.0
|
|
14
|
+
* @category Collection
|
|
15
|
+
* @param {Array|Object} collection The collection to iterate over.
|
|
16
|
+
* @param {Function} [predicate=_.identity] The function invoked per iteration.
|
|
17
|
+
* @returns {Array} Returns the new filtered array.
|
|
18
|
+
* @see _.filter
|
|
19
|
+
* @example
|
|
20
|
+
*
|
|
21
|
+
* var users = [
|
|
22
|
+
* { 'user': 'barney', 'age': 36, 'active': false },
|
|
23
|
+
* { 'user': 'fred', 'age': 40, 'active': true }
|
|
24
|
+
* ];
|
|
25
|
+
*
|
|
26
|
+
* _.reject(users, function(o) { return !o.active; });
|
|
27
|
+
* // => objects for ['fred']
|
|
28
|
+
*
|
|
29
|
+
* // The `_.matches` iteratee shorthand.
|
|
30
|
+
* _.reject(users, { 'age': 40, 'active': true });
|
|
31
|
+
* // => objects for ['barney']
|
|
32
|
+
*
|
|
33
|
+
* // The `_.matchesProperty` iteratee shorthand.
|
|
34
|
+
* _.reject(users, ['active', false]);
|
|
35
|
+
* // => objects for ['fred']
|
|
36
|
+
*
|
|
37
|
+
* // The `_.property` iteratee shorthand.
|
|
38
|
+
* _.reject(users, 'active');
|
|
39
|
+
* // => objects for ['barney']
|
|
40
|
+
*/
|
|
41
|
+
function reject(collection, predicate) {
|
|
42
|
+
var func = isArray(collection) ? arrayFilter : baseFilter;
|
|
43
|
+
return func(collection, negate(baseIteratee(predicate, 3)));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
module.exports = reject;
|
package/remove.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
var baseIteratee = require('./_baseIteratee'),
|
|
2
|
+
basePullAt = require('./_basePullAt');
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Removes all elements from `array` that `predicate` returns truthy for
|
|
6
|
+
* and returns an array of the removed elements. The predicate is invoked
|
|
7
|
+
* with three arguments: (value, index, array).
|
|
8
|
+
*
|
|
9
|
+
* **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`
|
|
10
|
+
* to pull elements from an array by value.
|
|
11
|
+
*
|
|
12
|
+
* @static
|
|
13
|
+
* @memberOf _
|
|
14
|
+
* @since 2.0.0
|
|
15
|
+
* @category Array
|
|
16
|
+
* @param {Array} array The array to modify.
|
|
17
|
+
* @param {Function} [predicate=_.identity] The function invoked per iteration.
|
|
18
|
+
* @returns {Array} Returns the new array of removed elements.
|
|
19
|
+
* @example
|
|
20
|
+
*
|
|
21
|
+
* var array = [1, 2, 3, 4];
|
|
22
|
+
* var evens = _.remove(array, function(n) {
|
|
23
|
+
* return n % 2 == 0;
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* console.log(array);
|
|
27
|
+
* // => [1, 3]
|
|
28
|
+
*
|
|
29
|
+
* console.log(evens);
|
|
30
|
+
* // => [2, 4]
|
|
31
|
+
*/
|
|
32
|
+
function remove(array, predicate) {
|
|
33
|
+
var result = [];
|
|
34
|
+
if (!(array && array.length)) {
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
var index = -1,
|
|
38
|
+
indexes = [],
|
|
39
|
+
length = array.length;
|
|
40
|
+
|
|
41
|
+
predicate = baseIteratee(predicate, 3);
|
|
42
|
+
while (++index < length) {
|
|
43
|
+
var value = array[index];
|
|
44
|
+
if (predicate(value, index, array)) {
|
|
45
|
+
result.push(value);
|
|
46
|
+
indexes.push(index);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
basePullAt(array, indexes);
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
module.exports = remove;
|
package/repeat.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var baseRepeat = require('./_baseRepeat'),
|
|
2
|
+
isIterateeCall = require('./_isIterateeCall'),
|
|
3
|
+
toInteger = require('./toInteger'),
|
|
4
|
+
toString = require('./toString');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Repeats the given string `n` times.
|
|
8
|
+
*
|
|
9
|
+
* @static
|
|
10
|
+
* @memberOf _
|
|
11
|
+
* @since 3.0.0
|
|
12
|
+
* @category String
|
|
13
|
+
* @param {string} [string=''] The string to repeat.
|
|
14
|
+
* @param {number} [n=1] The number of times to repeat the string.
|
|
15
|
+
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
|
|
16
|
+
* @returns {string} Returns the repeated string.
|
|
17
|
+
* @example
|
|
18
|
+
*
|
|
19
|
+
* _.repeat('*', 3);
|
|
20
|
+
* // => '***'
|
|
21
|
+
*
|
|
22
|
+
* _.repeat('abc', 2);
|
|
23
|
+
* // => 'abcabc'
|
|
24
|
+
*
|
|
25
|
+
* _.repeat('abc', 0);
|
|
26
|
+
* // => ''
|
|
27
|
+
*/
|
|
28
|
+
function repeat(string, n, guard) {
|
|
29
|
+
if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {
|
|
30
|
+
n = 1;
|
|
31
|
+
} else {
|
|
32
|
+
n = toInteger(n);
|
|
33
|
+
}
|
|
34
|
+
return baseRepeat(toString(string), n);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
module.exports = repeat;
|
package/replace.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
var toString = require('./toString');
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Replaces matches for `pattern` in `string` with `replacement`.
|
|
5
|
+
*
|
|
6
|
+
* **Note:** This method is based on
|
|
7
|
+
* [`String#replace`](https://mdn.io/String/replace).
|
|
8
|
+
*
|
|
9
|
+
* @static
|
|
10
|
+
* @memberOf _
|
|
11
|
+
* @since 4.0.0
|
|
12
|
+
* @category String
|
|
13
|
+
* @param {string} [string=''] The string to modify.
|
|
14
|
+
* @param {RegExp|string} pattern The pattern to replace.
|
|
15
|
+
* @param {Function|string} replacement The match replacement.
|
|
16
|
+
* @returns {string} Returns the modified string.
|
|
17
|
+
* @example
|
|
18
|
+
*
|
|
19
|
+
* _.replace('Hi Fred', 'Fred', 'Barney');
|
|
20
|
+
* // => 'Hi Barney'
|
|
21
|
+
*/
|
|
22
|
+
function replace() {
|
|
23
|
+
var args = arguments,
|
|
24
|
+
string = toString(args[0]);
|
|
25
|
+
|
|
26
|
+
return args.length < 3 ? string : string.replace(args[1], args[2]);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
module.exports = replace;
|
package/rest.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
var baseRest = require('./_baseRest'),
|
|
2
|
+
toInteger = require('./toInteger');
|
|
3
|
+
|
|
4
|
+
/** Error message constants. */
|
|
5
|
+
var FUNC_ERROR_TEXT = 'Expected a function';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Creates a function that invokes `func` with the `this` binding of the
|
|
9
|
+
* created function and arguments from `start` and beyond provided as
|
|
10
|
+
* an array.
|
|
11
|
+
*
|
|
12
|
+
* **Note:** This method is based on the
|
|
13
|
+
* [rest parameter](https://mdn.io/rest_parameters).
|
|
14
|
+
*
|
|
15
|
+
* @static
|
|
16
|
+
* @memberOf _
|
|
17
|
+
* @since 4.0.0
|
|
18
|
+
* @category Function
|
|
19
|
+
* @param {Function} func The function to apply a rest parameter to.
|
|
20
|
+
* @param {number} [start=func.length-1] The start position of the rest parameter.
|
|
21
|
+
* @returns {Function} Returns the new function.
|
|
22
|
+
* @example
|
|
23
|
+
*
|
|
24
|
+
* var say = _.rest(function(what, names) {
|
|
25
|
+
* return what + ' ' + _.initial(names).join(', ') +
|
|
26
|
+
* (_.size(names) > 1 ? ', & ' : '') + _.last(names);
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* say('hello', 'fred', 'barney', 'pebbles');
|
|
30
|
+
* // => 'hello fred, barney, & pebbles'
|
|
31
|
+
*/
|
|
32
|
+
function rest(func, start) {
|
|
33
|
+
if (typeof func != 'function') {
|
|
34
|
+
throw new TypeError(FUNC_ERROR_TEXT);
|
|
35
|
+
}
|
|
36
|
+
start = start === undefined ? start : toInteger(start);
|
|
37
|
+
return baseRest(func, start);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = rest;
|
package/result.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
var castPath = require('./_castPath'),
|
|
2
|
+
isFunction = require('./isFunction'),
|
|
3
|
+
toKey = require('./_toKey');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* This method is like `_.get` except that if the resolved value is a
|
|
7
|
+
* function it's invoked with the `this` binding of its parent object and
|
|
8
|
+
* its result is returned.
|
|
9
|
+
*
|
|
10
|
+
* @static
|
|
11
|
+
* @since 0.1.0
|
|
12
|
+
* @memberOf _
|
|
13
|
+
* @category Object
|
|
14
|
+
* @param {Object} object The object to query.
|
|
15
|
+
* @param {Array|string} path The path of the property to resolve.
|
|
16
|
+
* @param {*} [defaultValue] The value returned for `undefined` resolved values.
|
|
17
|
+
* @returns {*} Returns the resolved value.
|
|
18
|
+
* @example
|
|
19
|
+
*
|
|
20
|
+
* var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };
|
|
21
|
+
*
|
|
22
|
+
* _.result(object, 'a[0].b.c1');
|
|
23
|
+
* // => 3
|
|
24
|
+
*
|
|
25
|
+
* _.result(object, 'a[0].b.c2');
|
|
26
|
+
* // => 4
|
|
27
|
+
*
|
|
28
|
+
* _.result(object, 'a[0].b.c3', 'default');
|
|
29
|
+
* // => 'default'
|
|
30
|
+
*
|
|
31
|
+
* _.result(object, 'a[0].b.c3', _.constant('default'));
|
|
32
|
+
* // => 'default'
|
|
33
|
+
*/
|
|
34
|
+
function result(object, path, defaultValue) {
|
|
35
|
+
path = castPath(path, object);
|
|
36
|
+
|
|
37
|
+
var index = -1,
|
|
38
|
+
length = path.length;
|
|
39
|
+
|
|
40
|
+
// Ensure the loop is entered when path is empty.
|
|
41
|
+
if (!length) {
|
|
42
|
+
length = 1;
|
|
43
|
+
object = undefined;
|
|
44
|
+
}
|
|
45
|
+
while (++index < length) {
|
|
46
|
+
var value = object == null ? undefined : object[toKey(path[index])];
|
|
47
|
+
if (value === undefined) {
|
|
48
|
+
index = length;
|
|
49
|
+
value = defaultValue;
|
|
50
|
+
}
|
|
51
|
+
object = isFunction(value) ? value.call(object) : value;
|
|
52
|
+
}
|
|
53
|
+
return object;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
module.exports = result;
|
package/reverse.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** Used for built-in method references. */
|
|
2
|
+
var arrayProto = Array.prototype;
|
|
3
|
+
|
|
4
|
+
/* Built-in method references for those with the same name as other `lodash` methods. */
|
|
5
|
+
var nativeReverse = arrayProto.reverse;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Reverses `array` so that the first element becomes the last, the second
|
|
9
|
+
* element becomes the second to last, and so on.
|
|
10
|
+
*
|
|
11
|
+
* **Note:** This method mutates `array` and is based on
|
|
12
|
+
* [`Array#reverse`](https://mdn.io/Array/reverse).
|
|
13
|
+
*
|
|
14
|
+
* @static
|
|
15
|
+
* @memberOf _
|
|
16
|
+
* @since 4.0.0
|
|
17
|
+
* @category Array
|
|
18
|
+
* @param {Array} array The array to modify.
|
|
19
|
+
* @returns {Array} Returns `array`.
|
|
20
|
+
* @example
|
|
21
|
+
*
|
|
22
|
+
* var array = [1, 2, 3];
|
|
23
|
+
*
|
|
24
|
+
* _.reverse(array);
|
|
25
|
+
* // => [3, 2, 1]
|
|
26
|
+
*
|
|
27
|
+
* console.log(array);
|
|
28
|
+
* // => [3, 2, 1]
|
|
29
|
+
*/
|
|
30
|
+
function reverse(array) {
|
|
31
|
+
return array == null ? array : nativeReverse.call(array);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
module.exports = reverse;
|
package/round.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var createRound = require('./_createRound');
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Computes `number` rounded to `precision`.
|
|
5
|
+
*
|
|
6
|
+
* @static
|
|
7
|
+
* @memberOf _
|
|
8
|
+
* @since 3.10.0
|
|
9
|
+
* @category Math
|
|
10
|
+
* @param {number} number The number to round.
|
|
11
|
+
* @param {number} [precision=0] The precision to round to.
|
|
12
|
+
* @returns {number} Returns the rounded number.
|
|
13
|
+
* @example
|
|
14
|
+
*
|
|
15
|
+
* _.round(4.006);
|
|
16
|
+
* // => 4
|
|
17
|
+
*
|
|
18
|
+
* _.round(4.006, 2);
|
|
19
|
+
* // => 4.01
|
|
20
|
+
*
|
|
21
|
+
* _.round(4060, -2);
|
|
22
|
+
* // => 4100
|
|
23
|
+
*/
|
|
24
|
+
var round = createRound('round');
|
|
25
|
+
|
|
26
|
+
module.exports = round;
|
package/sample.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var arraySample = require('./_arraySample'),
|
|
2
|
+
baseSample = require('./_baseSample'),
|
|
3
|
+
isArray = require('./isArray');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Gets a random element from `collection`.
|
|
7
|
+
*
|
|
8
|
+
* @static
|
|
9
|
+
* @memberOf _
|
|
10
|
+
* @since 2.0.0
|
|
11
|
+
* @category Collection
|
|
12
|
+
* @param {Array|Object} collection The collection to sample.
|
|
13
|
+
* @returns {*} Returns the random element.
|
|
14
|
+
* @example
|
|
15
|
+
*
|
|
16
|
+
* _.sample([1, 2, 3, 4]);
|
|
17
|
+
* // => 2
|
|
18
|
+
*/
|
|
19
|
+
function sample(collection) {
|
|
20
|
+
var func = isArray(collection) ? arraySample : baseSample;
|
|
21
|
+
return func(collection);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
module.exports = sample;
|
package/sampleSize.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var arraySampleSize = require('./_arraySampleSize'),
|
|
2
|
+
baseSampleSize = require('./_baseSampleSize'),
|
|
3
|
+
isArray = require('./isArray'),
|
|
4
|
+
isIterateeCall = require('./_isIterateeCall'),
|
|
5
|
+
toInteger = require('./toInteger');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Gets `n` random elements at unique keys from `collection` up to the
|
|
9
|
+
* size of `collection`.
|
|
10
|
+
*
|
|
11
|
+
* @static
|
|
12
|
+
* @memberOf _
|
|
13
|
+
* @since 4.0.0
|
|
14
|
+
* @category Collection
|
|
15
|
+
* @param {Array|Object} collection The collection to sample.
|
|
16
|
+
* @param {number} [n=1] The number of elements to sample.
|
|
17
|
+
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
|
|
18
|
+
* @returns {Array} Returns the random elements.
|
|
19
|
+
* @example
|
|
20
|
+
*
|
|
21
|
+
* _.sampleSize([1, 2, 3], 2);
|
|
22
|
+
* // => [3, 1]
|
|
23
|
+
*
|
|
24
|
+
* _.sampleSize([1, 2, 3], 4);
|
|
25
|
+
* // => [2, 3, 1]
|
|
26
|
+
*/
|
|
27
|
+
function sampleSize(collection, n, guard) {
|
|
28
|
+
if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {
|
|
29
|
+
n = 1;
|
|
30
|
+
} else {
|
|
31
|
+
n = toInteger(n);
|
|
32
|
+
}
|
|
33
|
+
var func = isArray(collection) ? arraySampleSize : baseSampleSize;
|
|
34
|
+
return func(collection, n);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
module.exports = sampleSize;
|
package/seq.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
'at': require('./wrapperAt'),
|
|
3
|
+
'chain': require('./chain'),
|
|
4
|
+
'commit': require('./commit'),
|
|
5
|
+
'lodash': require('./wrapperLodash'),
|
|
6
|
+
'next': require('./next'),
|
|
7
|
+
'plant': require('./plant'),
|
|
8
|
+
'reverse': require('./wrapperReverse'),
|
|
9
|
+
'tap': require('./tap'),
|
|
10
|
+
'thru': require('./thru'),
|
|
11
|
+
'toIterator': require('./toIterator'),
|
|
12
|
+
'toJSON': require('./toJSON'),
|
|
13
|
+
'value': require('./wrapperValue'),
|
|
14
|
+
'valueOf': require('./valueOf'),
|
|
15
|
+
'wrapperChain': require('./wrapperChain')
|
|
16
|
+
};
|
package/set.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
var baseSet = require('./_baseSet');
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Sets the value at `path` of `object`. If a portion of `path` doesn't exist,
|
|
5
|
+
* it's created. Arrays are created for missing index properties while objects
|
|
6
|
+
* are created for all other missing properties. Use `_.setWith` to customize
|
|
7
|
+
* `path` creation.
|
|
8
|
+
*
|
|
9
|
+
* **Note:** This method mutates `object`.
|
|
10
|
+
*
|
|
11
|
+
* @static
|
|
12
|
+
* @memberOf _
|
|
13
|
+
* @since 3.7.0
|
|
14
|
+
* @category Object
|
|
15
|
+
* @param {Object} object The object to modify.
|
|
16
|
+
* @param {Array|string} path The path of the property to set.
|
|
17
|
+
* @param {*} value The value to set.
|
|
18
|
+
* @returns {Object} Returns `object`.
|
|
19
|
+
* @example
|
|
20
|
+
*
|
|
21
|
+
* var object = { 'a': [{ 'b': { 'c': 3 } }] };
|
|
22
|
+
*
|
|
23
|
+
* _.set(object, 'a[0].b.c', 4);
|
|
24
|
+
* console.log(object.a[0].b.c);
|
|
25
|
+
* // => 4
|
|
26
|
+
*
|
|
27
|
+
* _.set(object, ['x', '0', 'y', 'z'], 5);
|
|
28
|
+
* console.log(object.x[0].y.z);
|
|
29
|
+
* // => 5
|
|
30
|
+
*/
|
|
31
|
+
function set(object, path, value) {
|
|
32
|
+
return object == null ? object : baseSet(object, path, value);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
module.exports = set;
|
package/setWith.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
var baseSet = require('./_baseSet');
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This method is like `_.set` except that it accepts `customizer` which is
|
|
5
|
+
* invoked to produce the objects of `path`. If `customizer` returns `undefined`
|
|
6
|
+
* path creation is handled by the method instead. The `customizer` is invoked
|
|
7
|
+
* with three arguments: (nsValue, key, nsObject).
|
|
8
|
+
*
|
|
9
|
+
* **Note:** This method mutates `object`.
|
|
10
|
+
*
|
|
11
|
+
* @static
|
|
12
|
+
* @memberOf _
|
|
13
|
+
* @since 4.0.0
|
|
14
|
+
* @category Object
|
|
15
|
+
* @param {Object} object The object to modify.
|
|
16
|
+
* @param {Array|string} path The path of the property to set.
|
|
17
|
+
* @param {*} value The value to set.
|
|
18
|
+
* @param {Function} [customizer] The function to customize assigned values.
|
|
19
|
+
* @returns {Object} Returns `object`.
|
|
20
|
+
* @example
|
|
21
|
+
*
|
|
22
|
+
* var object = {};
|
|
23
|
+
*
|
|
24
|
+
* _.setWith(object, '[0][1]', 'a', Object);
|
|
25
|
+
* // => { '0': { '1': 'a' } }
|
|
26
|
+
*/
|
|
27
|
+
function setWith(object, path, value, customizer) {
|
|
28
|
+
customizer = typeof customizer == 'function' ? customizer : undefined;
|
|
29
|
+
return object == null ? object : baseSet(object, path, value, customizer);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
module.exports = setWith;
|
package/shuffle.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var arrayShuffle = require('./_arrayShuffle'),
|
|
2
|
+
baseShuffle = require('./_baseShuffle'),
|
|
3
|
+
isArray = require('./isArray');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Creates an array of shuffled values, using a version of the
|
|
7
|
+
* [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).
|
|
8
|
+
*
|
|
9
|
+
* @static
|
|
10
|
+
* @memberOf _
|
|
11
|
+
* @since 0.1.0
|
|
12
|
+
* @category Collection
|
|
13
|
+
* @param {Array|Object} collection The collection to shuffle.
|
|
14
|
+
* @returns {Array} Returns the new shuffled array.
|
|
15
|
+
* @example
|
|
16
|
+
*
|
|
17
|
+
* _.shuffle([1, 2, 3, 4]);
|
|
18
|
+
* // => [4, 1, 3, 2]
|
|
19
|
+
*/
|
|
20
|
+
function shuffle(collection) {
|
|
21
|
+
var func = isArray(collection) ? arrayShuffle : baseShuffle;
|
|
22
|
+
return func(collection);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
module.exports = shuffle;
|
package/size.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
var baseKeys = require('./_baseKeys'),
|
|
2
|
+
getTag = require('./_getTag'),
|
|
3
|
+
isArrayLike = require('./isArrayLike'),
|
|
4
|
+
isString = require('./isString'),
|
|
5
|
+
stringSize = require('./_stringSize');
|
|
6
|
+
|
|
7
|
+
/** `Object#toString` result references. */
|
|
8
|
+
var mapTag = '[object Map]',
|
|
9
|
+
setTag = '[object Set]';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Gets the size of `collection` by returning its length for array-like
|
|
13
|
+
* values or the number of own enumerable string keyed properties for objects.
|
|
14
|
+
*
|
|
15
|
+
* @static
|
|
16
|
+
* @memberOf _
|
|
17
|
+
* @since 0.1.0
|
|
18
|
+
* @category Collection
|
|
19
|
+
* @param {Array|Object|string} collection The collection to inspect.
|
|
20
|
+
* @returns {number} Returns the collection size.
|
|
21
|
+
* @example
|
|
22
|
+
*
|
|
23
|
+
* _.size([1, 2, 3]);
|
|
24
|
+
* // => 3
|
|
25
|
+
*
|
|
26
|
+
* _.size({ 'a': 1, 'b': 2 });
|
|
27
|
+
* // => 2
|
|
28
|
+
*
|
|
29
|
+
* _.size('pebbles');
|
|
30
|
+
* // => 7
|
|
31
|
+
*/
|
|
32
|
+
function size(collection) {
|
|
33
|
+
if (collection == null) {
|
|
34
|
+
return 0;
|
|
35
|
+
}
|
|
36
|
+
if (isArrayLike(collection)) {
|
|
37
|
+
return isString(collection) ? stringSize(collection) : collection.length;
|
|
38
|
+
}
|
|
39
|
+
var tag = getTag(collection);
|
|
40
|
+
if (tag == mapTag || tag == setTag) {
|
|
41
|
+
return collection.size;
|
|
42
|
+
}
|
|
43
|
+
return baseKeys(collection).length;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
module.exports = size;
|