Run details:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36
Chrome 116
Windows
Desktop
one year ago
Test name Executions per second
Length 10 temp swap 1333522.6 Ops/sec
Length 10 destructuring swap 1336106.6 Ops/sec
Length 100 temp swap 1196098.4 Ops/sec
Length 100 destructuring swap 1186627.9 Ops/sec
Length 1000 temp swap 687711.4 Ops/sec
Length 1000 destructuring swap 658853.8 Ops/sec
Script Preparation code:
x
 
function tempSwap(array) {
    const length = array.length;
    const swap1 = Math.floor(Math.random() * length);
    const swap2 = Math.floor(Math.random() * length);
    const temp = array[swap1];
    array[swap1] = array[swap2];
    array[swap2] = array[temp];
}
function destructuringSwap(array) {
    const length = array.length;
    const swap1 = Math.floor(Math.random() * length);
    const swap2 = Math.floor(Math.random() * length);
    return [
        array[swap1],
        array[swap2]
    ] = [
        array[swap2],
        array[swap1]
    ];
}
Tests:
  • Length 10 temp swap

     
    tempSwap(new Array(10));
  • Length 10 destructuring swap

     
    destructuringSwap(new Array(10));
  • Length 100 temp swap

     
    tempSwap(new Array(100));
  • Length 100 destructuring swap

     
    destructuringSwap(new Array(100));
  • Length 1000 temp swap

     
    tempSwap(new Array(1000));
  • Length 1000 destructuring swap

     
    destructuringSwap(new Array(1000));