spread ... vs slice() vs splice(0) vs concat() vs JSON.parse(JSON.stringify()) vs Custom function vs Lodash.cloneDeep() vs jQuery.extend(true)Fastest: slice() (37.7x faster)
40,103,256 ops/sec
36,896,952 ops/sec
32,238,120 ops/sec
29,242,748 ops/sec
1,960,636 ops/sec
1,582,132 ops/sec
1,130,643 ops/sec
1,063,475 ops/sec
Fastest: slice() (24.1x faster)
26,225,306 ops/sec
23,272,356 ops/sec
16,087,870 ops/sec
15,555,317 ops/sec
2,350,009 ops/sec
1,561,596 ops/sec
1,291,071 ops/sec
1,086,476 ops/sec
Fastest: spread ... (28.7x faster)
25,791,594 ops/sec
21,696,644 ops/sec
14,547,287 ops/sec
9,881,104 ops/sec
1,707,640 ops/sec
1,444,146 ops/sec
1,391,286 ops/sec
898,275 ops/sec
Fastest: slice() (32.6x faster)
18,452,868 ops/sec
17,681,648 ops/sec
15,965,518 ops/sec
13,027,082 ops/sec
993,114 ops/sec
786,716 ops/sec
581,072 ops/sec
565,228 ops/sec
Results show median performance across all community submissions. Run this benchmark yourself to verify on your device.
| Test case name | Result |
|---|---|
| spread ... | |
| slice() | |
| splice(0) | |
| concat() | |
| JSON.parse(JSON.stringify()) | |
| Custom function | |
| Lodash.cloneDeep() | |
| jQuery.extend(true) |
| Test name | Executions per second |
|---|---|
| ✓ slice() | 13,774,245 Ops/sec |
| concat() | 12,905,778 Ops/sec |
| splice(0) | 11,328,506 Ops/sec |
| spread ... | 10,519,873 Ops/sec |
| Custom function | 1,469,194 Ops/sec |
| JSON.parse(JSON.stringify()) | 1,364,106 Ops/sec |
| jQuery.extend(true) | 1,039,348 Ops/sec |
| Lodash.cloneDeep() | 996,589 Ops/sec |