我有一个数组 arrayData = ['abc', 'bcd', 'cdf', 'dfg']
有没有最快的方法将项目移动到数组顶部?
所以最终结果应该是 arrayData = ['abc', 'dfg' , 'bcd', 'cdf' ]
我有一个数组 arrayData = ['abc', 'bcd', 'cdf', 'dfg']
有没有最快的方法将项目移动到数组顶部?
所以最终结果应该是 arrayData = ['abc', 'dfg' , 'bcd', 'cdf' ]
将数组末尾元素移至第二个位置最简单的方法是:
arrayData.splice(1, 0, arrayData.pop())
splice
接受两个固定参数:开始删除的索引和要删除的元素数量,然后是可变参数,表示要在同一位置插入的元素。所以这里从索引1开始,删除0个元素,并插入从末尾弹出的元素。我不能保证它总是最快的(因为不同浏览器的实现可能会有所不同),但它避免了构建任何中间数组,并且尽可能明确/直接。
如果目标是从末尾移动到开头(您的问题描述称为“移到顶部”),那么就更简单了:
arrayData.unshift(arrayData.pop())
您只需要从右侧弹出并将结果值“unshift”到左侧即可。
var temp = arrayData[0];
arrayData[0] = arrayData[arrayData.length -1];
arrayData[arrayData.length -1] = temp;