将最后一个元素移动到数组中的第二个项目的最快方法

Kim*_*Kim 2 javascript

我有数组 arrayData = ['abc', 'bcd', 'cdf', 'dfg']

有没有最快的方法将项目移动到数组的顶部?

所以最后的结果应该是 arrayData = ['abc', 'dfg' , 'bcd', 'cdf' ]

Sha*_*ger 9

从数组末尾移动到第二个位置的最简单方法是:

arrayData.splice(1, 0, arrayData.pop())
Run Code Online (Sandbox Code Playgroud)

splice需要两个固定参数,开始的索引和要删除的元素数,然后是要在相同位置插入元素的可变参数。所以这从索引 1 开始,删除 0 个元素,并插入它从末尾弹出的元素。我不能发誓它总是最快的(实现很容易因浏览器而异),但它避免构造任何中间数组,并且尽可能明确/直接。

如果目标是从头到尾移动(您的问题描述说移动到“顶部”),那么就更简单了:

arrayData.unshift(arrayData.pop())
Run Code Online (Sandbox Code Playgroud)

您只需从右侧弹出并将结果值“取消移动”到左侧。