Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Duplicate Object[] Test
(version: 1)
Comparing performance of:
Object.values / Object.assign vs filter vs filter / findIndex vs for / includes vs underscore vs reduce / some
Created:
6 years ago
by:
Registered User
Jump to the latest result
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js'></script>
Script Preparation code:
var array = [ { 'name': '소나타', 'brand': '현대' }, { 'name': '아반떼', 'brand': '현대' }, { 'name': 'K7', 'brand': '기아' } ];
Tests:
Object.values / Object.assign
function func(array) { const result = Object.values(array.reduce((prev, cur) => Object.assign(prev, { [cur.brand]: cur }), {})); return result; } func(array);
filter
function func(array) { let uniq = {}; const result = array.filter(arr => !uniq[arr.brand] && (uniq[arr.brand] = true)); return result; } func(array);
filter / findIndex
function func(array) { const result = array.filter((arr, i) => array.findIndex((arr2) => arr['brand'] === arr2['brand']) === i); return result; } func(array);
for / includes
function func(array) { let tempArray = [], resultArray = []; for (let i = 0; i < array.length; i++) { let arr = array[i]; if (tempArray.includes(arr['brand'])) { continue; } else { resultArray.push(arr); tempArray.push(arr['brand']); } } return resultArray; } func(array);
underscore
function func(array) { const result = _.uniq(array, 'brand'); return result; } func(array);
reduce / some
function func(array) { const result = array.reduce((prev, cur) => { if (!prev.some(obj => obj['brand'] !== cur['brand'])) { prev.push(cur); } return prev; }, []); return result; } func(array);
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (6)
Previous results
Fork
Test case name
Result
Object.values / Object.assign
filter
filter / findIndex
for / includes
underscore
reduce / some
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!
Related benchmarks:
Underscore vs Array functions
lodash vs es6 in map method
lodash vs es6 in some method
IndexOf vs Includes vs lodash includes vs Set
EGO Intersection lodash vs underscore
Comments
Confirm delete:
Do you really want to delete benchmark?