Script Preparation code:
AخA
 
var arr = [];
for (var i = 0; i < 10000; i++) {
  arr.push(Math.floor(Math.random() * 1000) + 1)
}
arr.splice(5000, 0, 0)
Tests:
  • filter (immutable)

     
    var tempResult = arr.filter(v => v !== 0);
  • indexOf and delete (will leave initial length of array) (mutable)

     
    var index = arr.indexOf(0);
    delete arr[index];
    var tempResult = arr;
  • indexOf and splice (mutable)

     
    var index = arr.indexOf(0);
    arr.splice(index, 1);
    var tempResult = arr;
  • indexOf and slice and spread (immutable)

     
    var index = arr.indexOf(0);
    var tempResult = [...arr.slice(0, index - 1), ...arr.slice(index+1)]
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    filter (immutable)
    indexOf and delete (will leave initial length of array) (mutable)
    indexOf and splice (mutable)
    indexOf and slice and spread (immutable)

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36
Chrome 104 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
filter (immutable) 22913.3 Ops/sec
indexOf and delete (will leave initial length of array) (mutable) 830730.8 Ops/sec
indexOf and splice (mutable) 7961174.5 Ops/sec
indexOf and slice and spread (immutable) 7081080.0 Ops/sec