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

Javascript 将最后一个元素移动到数组中第二个项目的最快方法,javascript,Javascript,我的数组是arrayData=['abc'、'bcd'、'cdf'、'dfg'] 是否有最快的方法将项目移动到阵列顶部 因此,最终结果应该是arrayData=['abc'、'dfg'、'bcd'、'cdf']从数组末尾移动到第二个位置的最简单方法是: arrayData.splice(1, 0, arrayData.pop()) 获取两个固定参数,即起始于的索引和要删除的元素数,然后获取要在同一位置插入的元素的变量参数。这从索引1开始,删除0个元素,然后插入从末尾弹出的元素。我不能保证它总是

我的数组是
arrayData=['abc'、'bcd'、'cdf'、'dfg']

是否有最快的方法将项目移动到阵列顶部


因此,最终结果应该是
arrayData=['abc'、'dfg'、'bcd'、'cdf']
从数组末尾移动到第二个位置的最简单方法是:

arrayData.splice(1, 0, arrayData.pop())
获取两个固定参数,即起始于的索引和要删除的元素数,然后获取要在同一位置插入的元素的变量参数。这从索引1开始,删除0个元素,然后插入从末尾弹出的元素。我不能保证它总是最快的(实现很容易因浏览器而异),但它避免构建任何中间数组,并且尽可能显式/直接

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

arrayData.unshift(arrayData.pop())

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

使用数组对象的拼接方法,我认为您的问题已经得到了回答。 关于stackoverflow,请参见: 有关更多详细信息和示例,请参见:

如果使用本机方法(如取消移位或拼接),它将重建整个阵列。最快的方法是使用临时变量切换必要的值。这样,操作将是O(1)->恒定时间,而不是O(N)->线性时间

var temp = arrayData[0];
arrayData[0] = arrayData[arrayData.length -1];
arrayData[arrayData.length -1] = temp;

定义最快?性能还是最短代码?您的标题和示例中说的是从末尾移动到第二个位置,但您的描述中说的是数组的“顶部”(也就是第一个)。这是哪一个?在你想要的结果中,你改变了三个元素,而不是一个。就让它成为第二个位置:)嘿,基思,我修正了。。我的错误。。谢谢顺便说一句,它正在下降。。我喜欢测试结果。。。巨大的差异!!除了OPs数组中的3/4元素需要更改之外,所以它要复杂得多。。。