Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
lodash.uniq vs native Set
(version: 2)
Comparing performance of:
lodash.uniq vs Native Set
Created:
4 years ago
by:
Registered User
Jump to the latest result
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
var lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sit amet ex tincidunt, venenatis lacus ut, rhoncus enim. Cras auctor mollis tortor, eu varius risus gravida egestas. Nam vitae erat malesuada, interdum ligula nec, lobortis dolor. Nunc nibh magna, hendrerit eget dui eu, consequat sagittis enim. Proin ac rutrum ligula. Nunc et nunc quis est consectetur interdum. Phasellus quis dapibus ligula, eget varius metus. Proin orci eros, dignissim nec malesuada ac, pretium non lorem. Donec a elementum nibh. Aliquam feugiat blandit lorem a congue. Donec mi arcu, luctus a pretium et, euismod a nisl. Donec laoreet sapien in felis volutpat consectetur. Donec sed justo quis augue tincidunt dictum. Sed elit justo, sodales eget ex id, rutrum congue tortor. Nunc vel arcu dolor. Mauris nulla libero, consequat non sollicitudin eu, tristique condimentum dui. Donec vulputate euismod libero, in rutrum nibh maximus ut. Sed nisi ex, efficitur at augue sed, imperdiet iaculis dolor. Nunc vehicula scelerisque nulla ut aliquet. Phasellus sit amet nisl vel est cursus pulvinar ut vel est. Mauris ac ligula condimentum, varius purus sed, cursus velit. Proin nisi eros, congue et urna at, ullamcorper ornare risus. Nullam sed enim ac nulla laoreet placerat. Aliquam erat volutpat. Nullam in metus sed augue suscipit vehicula sed at leo. Praesent nec ex dictum, luctus erat in, mollis est. Sed eget urna lectus. Quisque sit amet erat et enim varius tempus non sed ligula. Nulla porttitor erat lacus, sed posuere mi viverra nec. Curabitur vulputate blandit nibh. Morbi tristique orci velit. Pellentesque egestas pulvinar ante. Sed sed ullamcorper lacus, non elementum tellus. Quisque eget imperdiet mi. Integer placerat, nulla vitae molestie auctor, nunc purus faucibus nibh, rutrum cursus arcu quam eget diam. Integer et congue turpis. Nunc placerat augue ante, in sagittis elit ornare iaculis. Curabitur tristique aliquet tellus, eget luctus elit pellentesque at. Phasellus varius commodo libero ut scelerisque. Integer euismod nisl sit amet erat laoreet, non interdum purus dapibus. Donec lobortis vel mauris eget dapibus. Maecenas non neque vehicula, egestas massa quis, varius ipsum. Pellentesque finibus libero sem, a interdum purus maximus id. Phasellus facilisis erat vitae ex varius dignissim. Mauris at congue lectus, eu dictum risus. Integer mattis malesuada nibh, eget viverra odio porta sed. Sed dapibus odio in varius condimentum. Nam egestas erat et convallis tincidunt. Sed volutpat lorem at molestie vulputate. Integer sit amet ex vel augue dictum faucibus et vitae quam. Quisque et tristique urna, sit amet condimentum mauris. Sed ac ornare sapien. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Morbi tincidunt lectus quis tellus efficitur, in ullamcorper dolor posuere. Phasellus sodales rhoncus ipsum, quis accumsan nibh pulvinar quis. Nulla vel diam sit amet nunc dapibus fermentum.".split(' ');
Tests:
lodash.uniq
_.uniq(lorem)
Native Set
[...(new Set(lorem))]
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
lodash.uniq
Native Set
Fastest:
N/A
Slowest:
N/A
Latest run results:
No previous run results
This benchmark does not have any results yet. Be the first one
to run it!
Autogenerated LLM Summary
(model
llama3.2:3b
, generated one year ago):
Let's break down the provided benchmark and explain what's being tested. **Benchmark Test Case: Lodash uniq vs Native Set** The test case compares two approaches to remove duplicate elements from an array: 1. **Lodash uniq**: The first test case uses the `_.uniq` function from the Lodash library, which removes duplicates from an array while preserving the original order. 2. **Native Set**: The second test case creates a new Set object from the input array and then converts it back to an array using the spread operator (`[...]`). This approach also removes duplicates but uses the native JavaScript Set data structure. **Pros and Cons of each Approach:** 1. **Lodash uniq** * Pros: + Preserves the original order of elements. + Can handle arrays with nested objects or other complex data structures. * Cons: + Requires an external library (Lodash). + May have additional overhead due to the library's functionality. 2. **Native Set** * Pros: + Fast and efficient, as it leverages the native JavaScript Set data structure. + Does not require an external library. * Cons: + Requires converting the array back to an array using the spread operator, which can be slower than a single pass over the input data. **Library: Lodash** Lodash is a popular JavaScript utility library that provides a collection of high-order functions for tasks such as: * Array manipulation (e.g., `_.uniq`, `_.filter`) * Object manipulation (e.g., `_`.cloneDeep`, `_`.map) * String manipulation (e.g., `_`.trim`, `_`.split) In this benchmark, Lodash is used to provide the `_.uniq` function, which removes duplicates from an array while preserving the original order. **Special JS Features/Syntax:** None mentioned in the provided code. However, it's worth noting that JavaScript has several features and syntax elements that can impact performance, such as: * Array methods (e.g., `map`, `filter`) vs. using loops. * Using `let` or `const` declarations for variables. * Using template literals (`''`) for string interpolation. Other Alternatives: If you're looking for alternatives to Lodash uniq or Native Set, consider the following options: 1. **Array.prototype.filter() + Array.prototype.includes()**: This approach uses a single pass over the input array and checks for duplicates using `includes()` method. 2. **Array.prototype.reduce()**: This approach uses a reduction function to accumulate unique elements from the input array. 3. **Using a custom implementation**: Depending on your specific use case, you might be able to write a custom implementation that outperforms both Lodash uniq and Native Set. Keep in mind that these alternatives may require more code and may not offer significant performance benefits over the tested approaches.
Related benchmarks:
Reduce w/ Lowercase vs. Magic Regex
lodash startsWith vs native startsWith
lodash some vs native array some
lodash.uniq vs native Set (multi array)
Comments
Confirm delete:
Do you really want to delete benchmark?