如何在Javascript中将最后一项移动到数组的开头



如何将数组中的最后一项移动到开头?

例如,我有一个数组["a", "b", "c"]。如何使其成为["c", "a", "b"]

let a = ["a", "b", "c"]
a.unshift(a.pop())

Array.slice()是一个良好的开端,它不会修改原始数组。下面是一个使用`Array.slice((并支持环绕的小算法:

let rotatingSlice = (a, start, end) => {
if (start < 0 && end > a.length)
return a.slice(start).concat(a.slice(0, end));
if (start < 0)
return a.slice(start).concat(a.slice(0, end));
else if (end > a.length)
return a.slice(start).concat(a.slice(0, end % a.length));
else
return a.slice(start, end);
};
let array = [0,1,2,3,4,5,6,7];
console.log(rotatingSlice(array, 0, 3)) // 1st 3 elements
console.log(rotatingSlice(array, -3, 0)) // last 3 elements
console.log(rotatingSlice(array, -3, 3)) // last 3 and 1st 3 elements
console.log(rotatingSlice(array, 4, 4 + array.length)) // the array starting at the middle

最新更新