HTML Preparation code:
AخA
 
1
<script src="https://cdn.jsdelivr.net/npm/object-hash@2.0.3/dist/object_hash.min.js"></script>
2
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.4/lodash.min.js"></script>
Script Preparation code:
x
 
window.NUM_ITEMS = 1000;
window.NUM_TAKE = 20;
window.input = [];
window.data = [];
window.check = [];
window.indices = [...Array(window.NUM_ITEMS).keys()];
// Populate data: entries with a nested array of 50 random entries
for (const i of window.indices) {
  window.data[i] = {
    ids: window.indices.slice(0, 50).map((x) => Math.floor(Math.random() * window.NUM_ITEMS * 10)),
    counter: i,
    counter2: Math.floor(Math.random() * i),
  };
  window.check[i] = false;
}
// calculate hashes for each data object
window.hashes = new Set(window.data.map((obj) => objectHash(obj)));
window.strings = new Set(window.data.map(JSON.stringify));
window.TAKE_IDX = window.indices.reverse().slice(0, window.NUM_TAKE);
// Uncomment to choose random indices
//window.TAKE_IDX = window.TAKE_IDX.map((x) => Math.floor(Math.random() * window.NUM_ITEMS));
// Populate input: copies of the data
for (const i of window.TAKE_IDX) {
  window.input[i] = { ids: [...window.data[i].ids], counter: window.data[i].counter, counter2: window.data[i].counter2 };
}
Tests:
  • _.isEqual

     
    for (const i of window.TAKE_IDX) {
      window.check[i] = window.data.some((item) => _.isEqual(item, window.input[i]));
    }
  • JSON.stringify

     
    for (const i of window.TAKE_IDX) {
      window.check[i] = window.strings.has(JSON.stringify(window.input[i]));
    }
  • objectHash

     
    for (const i of window.TAKE_IDX) {
      window.check[i] = window.hashes.has(objectHash(window.input[i]));
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    _.isEqual
    JSON.stringify
    objectHash

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36
Chrome 119 on Windows
View result in a separate tab
Test name Executions per second
_.isEqual 47.6 Ops/sec
JSON.stringify 24354.5 Ops/sec
objectHash 257.5 Ops/sec