Run details:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
Chrome 96
Windows
Desktop
3 years ago
Test name Executions per second
conditional array.push 663958.1 Ops/sec
set.add 699804.7 Ops/sec
Script Preparation code:
x
 
var array = [];
var set = new Set();
var map = new Map();
var existingItem1 = {};
var existingItem2 = {};
var existingItem3 = {};
var newItem1 = {};
var newItem2 = {};
var newItem3 = {};
for (let i = 0, item; i < 100; i++) {
  item = {index: i};
  array.push(item);
  set.add(item);
  map.set(item, 0);
}
array.push(existingItem1, existingItem2, existingItem3);
set.add(existingItem1); set.add(existingItem2); set.add(existingItem3);
map.set(existingItem1, 0); map.set(existingItem2, 0); map.set(existingItem3, 0);
Tests:
  • conditional array.push

     
      array.push(existingItem1);
      array.push(newItem1);
      array.push(existingItem2);
      array.push(newItem2);
      array.push(existingItem3);
      array.push(newItem3);
  • set.add

     
    set.add(existingItem1);
    set.add(newItem1);
    set.add(existingItem2);
    set.add(newItem2);
    set.add(existingItem3);
    set.add(newItem3);