Run details:
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36
Chrome 70
Windows 7
Desktop
5 years ago
Test name Executions per second
var child = JSON.parse(JSON.stringify(parent)); 82117.9 Ops/sec
child[i] = parent[i].slice()/// var child = []; for (var i = 0; i < parent.length; i += 1) { child[i] = parent[i].slice(); } 261855.1 Ops/sec
child[i][j] = parent[i][j]/// var child = []; for (var i = 0; i < parent.length; i += 1) { child[i] = []; for (var j = 0; j < parent[i].length; j += 1) { child[i][j] = parent[i][j]; } } 34042.0 Ops/sec
var child = JSON.parse(JSON.stringify(sparent)); 196878.4 Ops/sec
var child = sparent.slice(); 5295581.0 Ops/sec
child[i] = sparent[i]/// var child = []; for (var i = 0; i < parent.length; i += 1) { child[i] = sparent[i]; } 260751.5 Ops/sec
Script Preparation code:
Tests:
  • var child = JSON.parse(JSON.stringify(parent));

  • child[i] = parent[i].slice()/// var child = []; for (var i = 0; i < parent.length; i += 1) { child[i] = parent[i].slice(); }

  • child[i][j] = parent[i][j]/// var child = []; for (var i = 0; i < parent.length; i += 1) { child[i] = []; for (var j = 0; j < parent[i].length; j += 1) { child[i][j] = parent[i][j]; } }

  • var child = JSON.parse(JSON.stringify(sparent));

  • var child = sparent.slice();

  • child[i] = sparent[i]/// var child = []; for (var i = 0; i < parent.length; i += 1) { child[i] = sparent[i]; }