Here's the Lodash parity data I've compiled so far.
The status "100" means it's an exact match with the Lodash implementation.
| name | notes | status | rename |
|---|---|---|---|
| capitalize | 100 | ||
| uniqBy | • Renamed to unique. |
yes | unique |
| groupBy | • Renamed to group.• Property shorthand not supported (but coming soon). |
yes | group |
| pickBy | • Renamed to pick. |
yes | pick |
| castArray | • If the given value is an array, the array is shallow copied. • We also have castArrayIfExists which is similar but null/undefined are returned as is. |
yes | |
| pick | • Exactly one array of keys must be passed. No more, no less. • You may pass a selector function instead ( pickBy functionality). |
yes | |
| zip | 100 | ||
| set | • “Key arrays” are not supported. Only string-based JSON paths. | yes | |
| clone | • Unsure about the differences as of now. Help wanted. | yes | |
| flow | • Renamed to chain.• Full type safety with TypeScript (to a max of 10 functions). • Instead of taking an array of functions, each function is an argument to chain. |
yes | chain |
| isPlainObject | • Returns false for built-in namespaces like Math, JSON, etc.• Returns false for the arguments object of a function call. |
yes | |
| get | • “Key arrays” are not supported. Only string-based JSON paths. | yes | |
| isFunction | 100 | ||
| isString | • Boxed strings (e.g. new String("foo")) are not supported. |
yes | |
| debounce | • No leading or trailing option. Only a trailing debounce is supported.• No maxWait option. The function may be debounced indefinitely if called frequently enough.• The pending method is renamed to isPending. |
yes | |
| isBoolean | • Boxed values (e.g. new Boolean(true)) are not supported. |
yes | |
| isNumber | • Boxed numbers (e.g. new Number(0)) are not supported. |
yes | |
| throttle | • No leading or trailing option. Only a trailing behavior is supported.• The pending method is renamed to isThrottled.• No cancel or flush method. |
yes | |
| isObject | • Returns false for RegExp, Date, and other built-in, complex objects.• Returns false for arrays.• Returns false for functions. |
yes | |
| isEmpty | • There are likely quite a bit of differences here. Help wanted on this! | yes | |
| snakeCase | • Renamed to snake. |
yes | snake |
| startCase | • Renamed to title. |
yes | title |
| once | • Support for clearing the cached result to allow running the function again. See the once.reset function. |
yes | |
| kebabCase | • Renamed to dash. |
yes | dash |
| memoize | • Built-in support for TTL (time to live) invalidation.- By default, the cache key is computed with JSON.stringify of the arguments array. Lodash only uses the first argument if a custom key resolver is not provided.• Lodash uses a Map to support any type of cache key, while only JSON-compatible arguments are supported in Radashi.• No cache property, so the cache is not directly accessible. |
yes | memo |
| uniq | • Renamed to unique. |
yes | unique |
| camelCase | • Renamed to camel. |
yes | camel |
| cloneDeep | • Ours accepts a custom strategy (similar to cloneDeepWith). |
yes | |
| flatten | • Renamed to flat. |
yes | flat |
| difference | • Renamed to diff.• Requires two arrays exactly. No more, no less. • Supports an “identity function” that enables comparison through a property or other computation. |
yes | diff |
| name | notes | status | rename |
|---|---|---|---|
| reduce | • “Collection” polymorphism is unaligned with Radashi's vision. | no | |
| filter | • “Collection” polymorphism is unaligned with Radashi's vision. | no | |
| some | • “Collection” polymorphism is unaligned with Radashi's vision. | no | |
| values | • Use Object.values instead. |
no | |
| map | • “Collection” polymorphism is unaligned with Radashi's vision. | no | |
| padEnd | • Use String.prototype.padEnd instead. |
no | |
| forEach | • “Collection” polymorphism is unaligned with Radashi's vision. | no | |
| flattenDeep | • Use Array.prototype.flat instead. |
no | |
| keys | • Use Object.keys instead.• Radashi has its own keys function that is unrelated to Lodash keys. |
no |
| name | notes | status | rename |
|---|---|---|---|
| defaults | |||
| merge | • Radashi has a merge function, but it's for merging two arrays based on a key function. |
||
| truncate | |||
| union | |||
| isArguments | |||
| mergeWith | |||
| escapeRegExp | |||
| escape | |||
| isMatch | |||
| isUndefined | |||
| isNil | |||
| has | |||
| deburr | |||
| defaultsDeep | |||
| unescape | |||
| toPath | |||
| reject | |||
| transform | |||
| lowerCase | |||
| padStart | |||
| isTypedArray | |||
| chunk | |||
| pad | |||
| without | |||
| toArray | |||
| maxBy | |||
| xorBy | |||
| flatMap | |||
| startsWith | |||
| invokeMap | |||
| isEqualWith | |||
| every | |||
| uniqueId | |||
| uniqWith | |||
| tail | |||
| forOwn | |||
| intersection | |||
| compact | |||
| orderBy | |||
| last | |||
| pullAll | |||
| repeat | |||
| keysIn | |||
| create | |||
| range | |||
| indexOf | |||
| zipObject | |||
| lowerFirst | |||
| unset | |||
| keyBy | |||
| eq | |||
| trim | |||
| shuffle | |||
| trimStart | |||
| unionWith | |||
| isError | |||
| cond | |||
| toNumber | |||
| size | |||
| trimEnd | |||
| clamp | |||
| isObjectLike | |||
| at | |||
| differenceWith | |||
| cloneDeepWith | |||
| head | |||
| hasIn | |||
| isRegExp | |||
| sample | |||
| words | |||
| isDate | |||
| toPlainObject | |||
| endsWith | |||
| round | |||
| unionBy | |||
| xor | |||
| findLast | |||
| sortedLastIndex | |||
| invert | |||
| partition | |||
| setWith | |||
| random | |||
| result | |||
| findKey | |||
| defer | |||
| times | |||
| initial | |||
| invoke | |||
| pull | |||
| upperCase | |||
| isLength | |||
| isNull | |||
| inRange | |||
| sampleSize | |||
| remove | |||
| toString | |||
| parseInt | |||
| flowRight | |||
| differenceBy | |||
| property |
Not all Lodash functions are included. These were chosen based on NPM downloads of > 10,000.