Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Compare Array.splice() and Array.copyWithin() to move item within an array
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0
Browser:
Firefox 132
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
Move element by Array.splice()
1641769.1 Ops/sec
Move element by Array.copyWithin()
3948857.0 Ops/sec
HTML Preparation code:
<!--your preparation HTML code goes here-->
Script Preparation code:
var data = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99] function moveItemBySplice(from, to) { // remove `from` item and store it var f = data.splice(from, 1)[0]; // insert stored item into position `to` data.splice(to, 0, f); } function moveItemByCopyWithin(from, to) { const f = data[from]; if (to > from) { // copy items after `from` until `to` one index to the left data.copyWithin(from, from + 1, to + 1); } else { // copy items from `to` until before `from` one index to the right data.copyWithin(to + 1, to, from); } // insert stored item into position `to` data[to] = f; }
Tests:
Move element by Array.splice()
moveItemBySplice(3, 40); moveItemBySplice(50, 10); moveItemBySplice(45, 96); moveItemBySplice(7, 15);
Move element by Array.copyWithin()
moveItemByCopyWithin(3, 40); moveItemByCopyWithin(50, 10); moveItemByCopyWithin(45, 96); moveItemByCopyWithin(7, 15);