delete is slow (v4)

Revision 4 of this benchmark created by r-wettstaedt on


Setup

var arr = [1, 2, 3, 4, 5, 6];
    var arrDeleted = [1, 2, 3, 4, 5, 6];
    var arrayDeletedSplice = [1, 2, 3, 4, 5, 6];
    var arrayDeletedPop = [1, 2, 3, 4, 5, 6];
    var arrayDeletedLength = [1, 2, 3, 4, 5, 6];
    var arrayFiltered = [1, 2, 3, 4, 5, 6];
    
    delete arrDeleted[3];
    
    delete arrayDeletedLength[arrayDeletedLength.length - 1];
    arrayDeletedLength.length = 5;
    
    arrayDeletedSplice.splice(3, 1);
    arrayDeletedPop.pop();
    
    arrayFiltered = arrayFiltered.filter(function(a) {
      return a !== 4;
    });

Test runner

Ready to run.

Testing in
TestOps/sec
delete
for (var i = 0; i < arrDeleted.length; i++) {
  console.log(arrDeleted[i]);
}
ready
no delete
for (var i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}
ready
delete with splice
for (var i = 0; i < arrayDeletedSplice.length; i++) {
  console.log(arrayDeletedSplice[i]);
}
ready
delete with pop
for (var i = 0; i < arrayDeletedPop.length; i++) {
  console.log(arrayDeletedPop[i]);
}
ready
delete from end with manual length correction
for (var i = 0; i < arrayDeletedLength.length; i++) {
  console.log(arrayDeletedLength[i]);
}
ready
delete with filter
for (var i = 0; i < arrayFiltered.length; i++) {
  console.log(arrayFiltered[i]);
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.