{"id":13631762,"url":"https://github.com/HeftyKoo/pocket-lodash","last_synced_at":"2025-04-17T22:31:44.686Z","repository":{"id":39799558,"uuid":"100284075","full_name":"HeftyKoo/pocket-lodash","owner":"HeftyKoo","description":"读lodash源码，lodash source code analyze","archived":false,"fork":false,"pushed_at":"2022-05-25T11:01:19.000Z","size":1428,"stargazers_count":397,"open_issues_count":374,"forks_count":48,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-08-01T22:49:39.954Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.gitbook.com/book/yeyuqiudeng/pocket-lodash/details","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HeftyKoo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-08-14T15:45:58.000Z","updated_at":"2024-07-22T07:40:18.000Z","dependencies_parsed_at":"2022-09-02T23:51:42.692Z","dependency_job_id":null,"html_url":"https://github.com/HeftyKoo/pocket-lodash","commit_stats":null,"previous_names":["yeyuqiudeng/pocket-lodash"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeftyKoo%2Fpocket-lodash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeftyKoo%2Fpocket-lodash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeftyKoo%2Fpocket-lodash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeftyKoo%2Fpocket-lodash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HeftyKoo","download_url":"https://codeload.github.com/HeftyKoo/pocket-lodash/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223768653,"owners_count":17199356,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T22:02:37.282Z","updated_at":"2024-11-08T23:31:35.894Z","avatar_url":"https://github.com/HeftyKoo.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"# pocket-lodash\n\n\u003e 能做事的做事，能发声的发声。有一分热，发一分光，就令萤火一般，也可以在黑暗里发一点光，不必等候炬火。\n\u003e\n\u003e ​\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t——鲁迅\n\n很喜欢鲁迅的这段话，在很多社区也会引用作为签名。鲁迅这段话有反抗的意味，用于单纯的技术分享似乎不太合适，可是管它呢。\n\n前一段时间，从 `Zepto` 开始，初尝了阅读源码，以前觉得很难，现在有点上了瘾，这次阅读的是 `lodash` ，平时也会用到这个库，希望可以借此对它有更深入的了解。\n\n这系列的每篇文章应该不会很长，依 `lodash` 的组织，每个文件都会有一篇对应的文章，因此命名为 `pocket-lodash`。\n\n## 源码版本\n\n[lodash master 分支](https://github.com/lodash/lodash)\n\n## GitBook\n\n《[pocket-lodash](https://www.gitbook.com/book/yeyuqiudeng/pocket-lodash/details)》\n\n## 目录\n\n* [internal]()\n  * [Hash](internal/Hash.md)\n  * [assocIndexOf](internal/assocIndexOf.md)\n  * [ListCache](internal/ListCache.md)\n  * [MapCache](internal/MapCache.md)\n  * [SetCache](internal/SetCache.md)\n  * [baseFindIndex](internal/baseFindIndex.md)\n  * [baseIsNaN](eq.md)\n  * [strictIndexOf](internal/strictIndexOf.md)\n  * [baseIndexOf](internal/baseIndexOf.md)\n  * [arrayIncludes](internal/arrayIncludes.md)\n  * [arrayIncludesWith](internal/arrayIncludesWith.md)\n  * [cacheHas](internal/cacheHas.md)\n  * [baseDifference](internal/baseDifference.md)\n  * [baseGetTag](internal/baseGetTag.md)\n  * [getTag](internal/getTag.md)\n  * [isFlattenable](internal/isFlattenable.md)\n  * [baseFlatten](internal/baseFlatten.md)\n  * [baseWhile](internal/baseWhile.md)\n  * [baseIntersection](internal/baseIntersection.md)\n  * [castArrayLikeObject](internal/castArrayLikeObject.md)\n  * [strictLastIndexOf](internal/strictLastIndexOf.md)\n  * [isIndex](internal/isIndex.md)\n  * [baseIndexOfWith](internal/baseIndexOfWith.md)\n  * [copyArray](internal/copyArray.md)\n  * [basePullAll](internal/basePullAll.md)\n  * [isKey](internal/isKey.md)\n  * [memoizeCapped](internal/memoizeCapped.md)\n  * [stringToPath](internal/stringToPath.md)\n  * [castPath](internal/castPath.md)\n  * [toKey](internal/toKey.md)\n  * [baseGet](internal/baseGet.md)\n  * [baseAt](internal/baseAt.md)\n  * [parent](internal/parent.md)\n  * [baseUnset](internal/baseUnset.md)\n  * [basePullAt](internal/basePullAt.md)\n  * [compareAscending](internal/compareAscending.md)\n  * [baseSortedIndexBy](internal/baseSortedIndexBy.md)\n  * [baseSortedIndex](internal/baseSortedIndex.md)\n  * [baseSortedUniq](internal/baseSortedUniq.md)\n  * [setToArray](internal/setToArray.md)\n  * [createSet](internal/createSet.md)\n  * [baseUniq](internal/baseUniq.md)\n  * [baseProperty](internal/baseProperty.md)\n  * [baseXor](internal/baseXor.md)\n  * [baseAssignValue](internal/baseAssignValue.md)\n  * [assignValue](internal/assignValue.md)\n  * [baseZipObject](internal/baseZipObject.md)\n  * [baseSet](internal/baseSet.md)\n  * [arrayReduce](internal/arrayReduce.md)\n  * [baseFor](internal/baseFor.md)\n  * [freeGlobal](internal/freeGlobal.md)\n  * [root](internal/root.md)\n  * [nodeTypes](internal/nodeTypes.md)\n  * [arrayLikeKeys](internal/arrayLikeKeys.md)\n  * [baseForOwn](internal/baseForOwn.md)\n  * [baseEach](internal/baseEach.md)\n  * [baseReduce](internal/baseReduce.md)\n  * [arrayEach](internal/arrayEach.md)\n  * [arrayEachRight](internal/arrayEachRight.md)\n  * [baseForRight](internal/baseForRight.md)\n  * [baseForOwnRight](internal/baseForOwnRight.md)\n  * [baseEachRight](internal/baseEachRight.md)\n  * [baseSortBy](internal/baseSortBy.md)\n  * [compareMultiple](internal/compareMultiple.md)\n  * [baseOrderBy](internal/baseOrderBy.md)\n  * [arrayReduceRight](internal/arrayReduceRight.md)\n  * [asciiSize](internal/asciiSize.md)\n  * [hasUnicode](internal/hasUnicode.md)\n  * [unicodeSize](internal/unicodeSize.md)\n  * [stringSize](internal/stringSize.md)\n  * [Stack](internal/Stack.md)\n  * [cloneBuffer](internal/cloneBuffer.md)\n  * [copyObject](internal/copyObject.md)\n  * [copyArrayBuffer](internal/copyArrayBuffer.md)\n  * [cloneDataView](internal/cloneDataView.md)\n  * [cloneTypedArray](internal/cloneTypedArray.md)\n  * [cloneRegExp](internal/cloneRegExp.md)\n  * [cloneSymbol](internal/cloneSymbol.md)\n  * [getSymbols](internal/getSymbols.md)\n  * [copySymbols](internal/copySymbols.md)\n  * [getSymbolsIn](internal/getSymbolsIn.md)\n  * [copySymbolsIn](internal/copySymbolsIn.md)\n  * [getAllKeys](internal/getAllKeys.md)\n  * [getAllKeysIn](internal/getAllKeysIn.md)\n  * [isPrototype](internal/isPrototype.md)\n  * [initCloneObject](internal/initCloneObject.md)\n  * [baseClone](internal/baseClone.md)\n  * [baseConformsTo](internal/baseConformsTo.md)\n  * [equalArrays](internal/equalArrays.md)\n  * [mapToArray](internal/mapToArray.md)\n  * [equalByTag](internal/equalByTag.md)\n  * [equalObjects](internal/equalObjects.md)\n  * [baseIsEqualDeep](internal/baseIsEqualDeep.md)\n  * [baseIsEqual](internal/baseIsEqual.md)\n  * [isStrictComparable](internal/isStrictComparable.md)\n  * [getMatchData](internal/getMatchData.md)\n  * [baseIsMatch](internal/baseIsMatch.md)\n  * [iteratorToArray](internal/iteratorToArray.md)\n  * [asciiToArray](internal/asciiToArray.md)\n  * [unicodeToArray](internal/unicodeToArray.md)\n  * [stringToArray](internal/stringToArray.md)\n  * [baseValues](internal/baseValues.md)\n  * [baseToNumber](internal/baseToNumber.md)\n  * [baseToString](internal/baseToString.md)\n  * [createMathOperation](internal/createMathOperation.md)\n  * [createRound](internal/createRound.md)\n  * [baseSum](internal/baseSum.md)\n  * [baseInRange](internal/baseInRange.md)\n  * [assignMergeValue](internal/assignMergeValue.md)\n  * [baseMergeDeep](internal/baseMergeDeep.md)\n  * [baseMerge](internal/baseMerge.md)\n  * [createAssigner](internal/createAssigner.md)\n  * [baseFindKey](internal/baseFindKey.md)\n  * [basePickBy](internal/basePickBy.md)\n  * [basePick](internal/basePick.md)\n  * [baseUpdate](internal/baseUpdate.md)\n  * [castSlice](internal/castSlice.md)\n  * [createCaseFirst](internal/createCaseFirst.md)\n  * [unicodeWords](internal/unicodeWords.md)\n  * [basePropertyOf](internal/basePropertyOf.md)\n  * [deburrLetter](internal/deburrLetter.md)\n  * [createPadding](internal/createPadding.md)\n  * [charsEndIndex](internal/charsEndIndex,md)\n  * [charsStartIndex](internal/charsStartIndex.md)\n  * [baseConforms](internal/baseConforms.md)\n  * [matchesStrictComparable](internal/matchesStrictComparable.md)\n  * [baseMatches](internal/baseMatches.md)\n  * [baseMatchesProperty](internal/baseMatchesProperty.md)\n  * [basePropertyDeep](internal/basePropertyDeep.md)\n  * [baseRange](internal/baseRange.md)\n  * [createRange](internal/createRange.md)\n\n\n* [slice](slice.md)\n* [chunk](chunk.md)\n* [compact](compact.md)\n* [eq](eq.md)\n* [map](map.md)\n* [isObjectLike](isObjectLike.md)\n* [isArguments](isArguments.md)\n* [isLength](isLength.md)\n* [isArrayLike](isArrayLike.md)\n* [isArrayLikeObject](isArrayLikeObject.md)\n* [difference](difference.md)\n* [last](last.md)\n* [differenceBy](differenceBy.md)\n* [differenceWith](differenceWith.md)\n* [drop](drop.md)\n* [dropRight](dropRight.md)\n* [dropRightWhile](dropRightWhile.md)\n* [dropWhile](dropWhile.md)\n* [findLastIndex](findLastIndex.md)\n* [head](head.md)\n* [flatten](flatten.md)\n* [flattenDeep](flattenDeep.md)\n* [flattenDepth](flattenDepth.md)\n* [fromPairs](fromPairs.md)\n* [indexOf](indexOf.md)\n* [initial](initial.md)\n* [intersection](intersection.md)\n* [intersectionBy](intersectionBy.md)\n* [intersectionWith](intersectionWith.md)\n* [isObject](isObject.md)\n* [isSymbol](isSymbol.md)\n* [toNumber](toNumber.md)\n* [toFinite](toFinite.md)\n* [toInteger](toInteger.md)\n* [lastIndexOf](lastIndexOf.md)\n* [nth](nth.md)\n* [pullAll](pullAll.md)\n* [pull](pull.md)\n* [pullAllBy](pullAllBy.md)\n* [pullAllWith](pullAllWith.md)\n* [memoize](memoize.md)\n* [get](get.md)\n* [pullAt](pullAt.md)\n* [remove](remove.md)\n* [sortedIndex](sortedIndex.md)\n* [sortedIndexBy](sortedIndexBy.md)\n* [sortedIndexOf](sortedIndexOf.md)\n* [sortedLastIndex](sortedLastIndex.md)\n* [sortedLastIndexBy](sortedLastIndexBy.md)\n* [sortedLastIndexOf](sortedLastIndexOf.md)\n* [sortedUniq](sortedUniq.md)\n* [sortedUniqBy](sortedUniqBy.md)\n* [tail](tail.md)\n* [take](take.md)\n* [takeRight](takeRight.md)\n* [takeRightWhile](takeRightWhile.md)\n* [takeWhile](takeWhile.md)\n* [union](union.md)\n* [unionBy](unionBy.md)\n* [unionWith](unionWith.md)\n* [uniq](uniq.md)\n* [uniqBy](uniqBy.md)\n* [uniqWith](uniqWith.md)\n* [filter](filter.md)\n* [zip](zip.md)\n* [unzipWith](unzipWith.md)\n* [without](without.md)\n* [xor](xor.md)\n* [xorBy](xorBy.md)\n* [xorWith](xorWith.md)\n* [zip](zip.md)\n* [zipObject](zipObject.md)\n* [zipObjectDeep](zipObjectDeep.md)\n* [zipWith](zipWith.md)\n* [isBuffer](isBuffer.md)\n* [isTypedArray](isTypedArray.md)\n* [keys](keys.md)\n* [reduce](reduce.md)\n* [countBy](countBy.md)\n* [forEach](forEach.md)\n* [forEachRight](forEachRight.md)\n* [every](every.md)\n* [findLast](findLast.md)\n* [flatMap](flatMap.md)\n* [flatMapDeep](flatMapDeep.md)\n* [flatMapDepth](flatMapDepth.md)\n* [groupBy](groupBy.md)\n* [invoke](invoke.md)\n* [invokeMap](invokeMap.md)\n* [keyBy](keyBy.md)\n* [orderBy](orderBy.md)\n* [partition](partition.md)\n* [reduceRight](reduceRight.md)\n* [filterObject](filterObject.md)\n* [negate](negate.md)\n* [reject](reject.md)\n* [sample](sample.md)\n* [sampleSize](sampleSize.md)\n* [shuffle](shuffle.md)\n* [isString](isString.md)\n* [size](size.md)\n* [after](after.md)\n* [before](before.md)\n* [debounce](debounce.md)\n* [throttle](throttle.md)\n* [defer](defer.md)\n* [delay](delay.md)\n* [flip](flip.md)\n* [once](once.md)\n* [overArgs](overArgs.md)\n* [castArray](castArray.md)\n* [keysIn](keysIn.md)\n* [clone](clone.md)\n* [cloneDeep](cloneDeep.md)\n* [cloneDeepWith](cloneDeepWith.md)\n* [cloneWith](cloneWith.md)\n* [conformsTo](conformsTo.md)\n* [gt](gt.md)\n* [gte](gte.md)\n* [isArrayBuffer](isArrayBuffer.md)\n* [isBoolean](isBoolean.md)\n* [isDate](isDate.md)\n* [isPlainObject](isPlainObject.md)\n* [isElement](isElement.md)\n* [isEmpty](isEmpty.md)\n* [some](some.md)\n* [eqDeep](eqDeep.md)\n* [isEqualWith](isEqualWith.md)\n* [isError](isError.md)\n* [isFunction](isFunction.md)\n* [isMap](isMap.md)\n* [isMatch](isMatch.md)\n* [isMatchWith](isMatchWith.md)\n* [isNative](isNative.md)\n* [isNil](isNil.md)\n* [isNull](isNull.md)\n* [isNumber](isNumber.md)\n* [isRegExp](isRegExp.md)\n* [isSet](isSet.md)\n* [isUndefined](isUndefined.md)\n* [isWeakMap](isWeakMap.md)\n* [isWeakSet](isWeakSet.md)\n* [lt](lt.md)\n* [lte](lte.md)\n* [values](values.md)\n* [toArray](toArray.md)\n* [toLength](toLength.md)\n* [toPlainObject](toPlainObject.md)\n* [toSafeInteger](toSafeInteger.md)\n* [toString](toString.md)\n* [add](add.md)\n* [ceil](ceil.md)\n+ [divide](divide.md)\n+ [floor](floor.md)\n+ [maxBy](maxBy.md)\n+ [meanBy](meanBy.md)\n+ [mean](mean.md)\n+ [minBy](minBy.md)\n+ [multiply](multiply.md)\n+ [round](round.md)\n+ [subtract](subtract.md)\n+ [sum](sum.md)\n+ [sumBy](sumBy.md)\n+ [clamp](clamp.md)\n+ [inRange](inRange.md)\n+ [random](random.md)\n+ [at](at.md)\n+ [create](create.md)\n+ [defaults](defaults.md)\n+ [mergeWith](mergeWith.md)\n+ [defaultsDeep](defaultsDeep.md)\n+ [fromEntries](fromEntries.md)\n+ [findKey](findKey.md)\n+ [findLastKey](findLastKey.md)\n+ [functions](functions.md)\n+ [has](has.md)\n+ [hasIn](hasIn.md)\n+ [invert](invert.md)\n+ [invertBy](invertBy.md)\n+ [mapKey](mapKey.md)\n+ [mapValue](mapValue.md)\n+ [merge](merge.md)\n+ [pick](pick.md)\n+ [pickBy](pickBy.md)\n+ [result](result.md)\n+ [set](set.md)\n+ [setWith](setWith.md)\n+ [transform](transform.md)\n+ [unset](unset.md)\n+ [update](update.md)\n+ [updateWith](updateWith.md)\n+ [upperFirst](upperFirst.md)\n+ [words](words.md)\n+ [camelCase](camelCase.md)\n+ [capitalize](capitalize.md)\n+ [deburr](deburr.md)\n+ [endsWith](endsWith.md)\n+ [escape](escape.md)\n+ [escapeRegExp](escapeRegExp.md)\n+ [kebabCase](kebabCase.md)\n+ [lowerCase](lowerCase.md)\n+ [lowerFirst](lowerFirst.md)\n+ [repeat](repeat.md)\n+ [pad](pad.md)\n+ [padEnd](padEnd.md)\n+ [padStart](padStart.md)\n+ [parseInt](parseInt.md)\n+ [replace](replace.md)\n+ [snakeCase](snakeCase.md)\n+ [split](split.md)\n+ [startCase](startCase.md)\n+ [startsWith](startsWith.md)\n+ [trim](trim.md)\n+ [trimEnd](trimEnd.md)\n+ [trimStrat](trimStrat.md)\n+ [truncate](truncate.md)\n+ [unescape](unescape.md)\n+ [upperCase](upperCase.md)\n+ [attempt](attempt.md)\n+ [cond](cond.md)\n+ [conforms](conforms.md)\n+ [defaultTo](defaultTo.md)\n+ [flow](flow.md)\n+ [flowRight](flowRight.md)\n+ [matches](matches.md)\n+ [matchesProperty](matchesProperty.md)\n+ [method](method.md)\n+ [methodOf](methodOf.md)\n+ [nthArg](nthArg.md)\n+ [over](over.md)\n+ [overEvery](overEvery.md)\n+ [overSome](overSome.md)\n+ [property](property.md)\n+ [propertyOf](propertyOf.md)\n+ [range](range.md)\n+ [rangeRight](rangeRight.md)\n+ [times](times.md)\n+ [toPath](toPath.md)\n+ [uniqueId](uniqueId.md)\n+ [someValues](someValues.md)\n+ [hasPath](hasPath.md)\n+ [hasPathIn](hasPathIn.md)\n\n## License\n\n[署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)](http://creativecommons.org/licenses/by-nc-nd/4.0/)\n\n所有文章都会同步发送到微信公众号上，欢迎关注,欢迎提意见：\n\n  ![](https://raw.githubusercontent.com/yeyuqiudeng/resource/master/images/qrcode_front-end-article.jpg) ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHeftyKoo%2Fpocket-lodash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FHeftyKoo%2Fpocket-lodash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHeftyKoo%2Fpocket-lodash/lists"}