Tests:
  • Array.prototype.slice

    x
     
    let param = [];
    for (let a = 0; a < 50; a++) {
        param[a] = new Array(50);
        for (let b = 0; b < 50; b++) {
            param[a][b] = Math.random();
        }
    }
    let ans = [];
    for (let i = 0; i < param.length; i++) {
      ans.push(param[i].slice());
    }
  • spread operator

     
    let param = [];
    for (let a = 0; a < 50; a++) {
        param[a] = new Array(50);
        for (let b = 0; b < 50; b++) {
            param[a][b] = Math.random();
        }
    }
    let ans = [];
    for (let i = 0; i < 50; i++) {
      ans.push([...param[i]]);
    }
  • simple loop

     
    let param = [];
    for (let a = 0; a < 50; a++) {
        param[a] = new Array(50);
        for (let b = 0; b < 50; b++) {
            param[a][b] = Math.random();
        }
    }
    let ans = [];
    for (let i = 0; i < 50; i++) {
      ans.push([]);
      for(let j = 0; j < 50; j++) {
        ans[i].push(param[i][j]);
      }
    }
  • constants loop

     
    let param = [];
    for (let a = 0; a < 50; a++) {
        param[a] = new Array(50);
        for (let b = 0; b < 50; b++) {
            param[a][b] = Math.random();
        }
    }
    let ans = [];
    for (let i = 0; i < 50; i++) {
      ans.push([]);
      for(let j = 0; j < 50; j++) {
        ans[i].push(param[i][j]);
      }
    }
  • placement loop

     
    let param = [];
    for (let a = 0; a < 50; a++) {
        param[a] = new Array(50);
        for (let b = 0; b < 50; b++) {
            param[a][b] = Math.random();
        }
    }
    let ans = [];
    for (let i = 0; i < 50; i++) {
      ans.push([]);
      for(let j = 0; j < 50; j++) {
        ans[i][j] = param[i][j];
      }
    }
  • pre-built array loop

     
    let param = [];
    for (let a = 0; a < 50; a++) {
        param[a] = new Array(50);
        for (let b = 0; b < 50; b++) {
            param[a][b] = Math.random();
        }
    }
    let ans = new Array(50);
    for (let i = 0; i < 50; i++) {
      ans[i] = new Array(50);
      for(let j = 0; j < 50; j++) {
        ans[i][j] = param[i][j];
      }
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Array.prototype.slice
    spread operator
    simple loop
    constants loop
    placement loop
    pre-built array loop

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 7 months ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
Chrome 128 on Windows
View result in a separate tab
Test name Executions per second
Array.prototype.slice 3662.0 Ops/sec
spread operator 3858.1 Ops/sec
simple loop 3821.4 Ops/sec
constants loop 3761.7 Ops/sec
placement loop 3803.8 Ops/sec
pre-built array loop 3860.3 Ops/sec