copy for: 2508.226ms copy map: 1188.982ms copy spread: 1898.890ms
const map = [ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15] ]; const n = 10e6; console.time('copy for'); for (let i = 0; i < n; i++) { const m = []; for (let row = 0; row < map.length; row++) { m[row] = []; for (let reel = 0; reel < map[row].length; reel++) { m[row][reel] = map[row][reel]; } } } console.timeEnd('copy for'); console.time('copy map'); for (let i = 0; i < n; i++) { const m = map.map(a => a.map(item => item)); } console.timeEnd('copy map'); console.time('copy spread'); for (let i = 0; i < n; i++) { const m = map.map(a => [...a]); } console.timeEnd('copy spread');