Run details:
Mozilla/5.0 (iPhone; CPU iPhone OS 17_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/120.0.6099.119 Mobile/15E148 Safari/604.1
Chrome Mobile iOS 120
iOS 17.1
Mobile
2 years ago
Benchmark.js
Native map(shallow clone)
4.9M/s
Native map deep slice at 0(turns objects into arrays)
2.8M/s
Native map deep slice(turns objects into arrays)
2.8M/s
Object.assign shallow clone
2.4M/s
Native JSON parse
347K/s
Map deep clone
214K/s
Lodash cloneDeep
205K/s
Recursive deep clone
193K/s
structuredClone
132K/s
View exact numbers
Test name Executions per second
Native map(shallow clone) 4,863,648 Ops/sec
Native map deep slice at 0(turns objects into arrays) 2,774,896 Ops/sec
Native map deep slice(turns objects into arrays) 2,768,494 Ops/sec
Object.assign shallow clone 2,392,348 Ops/sec
Native JSON parse 346,640 Ops/sec
Map deep clone 214,211 Ops/sec
Lodash cloneDeep 204,890 Ops/sec
Recursive deep clone 192,986 Ops/sec
structuredClone 131,842 Ops/sec
HTML Preparation code:
Script Preparation code:
Tests: