我有一个8个元素的数组。如何将最后4个元素移到前面?
可以将Array.prototype.concat()与Array.prototype.slice()结合使用:
const arr = [1, 2, 3, 4, 5, 6, 7, 8]
const result = arr.slice(4).concat(arr.slice(0, 4))
console.log(result)
更动态的版本:
const arr = [1, 2, 3, 4, 5, 6, 7, 8]
const half = arr.length / 2
const result = arr.slice(half).concat(arr.slice(0, half))
console.log(result)
可以同时使用Array.prototype.slice方法和Spread操作符
首先展开原始数组的最后四个元素,然后开始展开剩余的元素。
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
newArr = [...arr.slice(-4), ...arr.slice(0, -4)];
console.log(newArr);
你也可以直接使用array. prototype. splice,但要记住它会改变原始数组。
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.splice(0, 0, ...arr.splice(-4));
console.log(arr);
如果你可以改变数组(而不是创建一个新的)splice
最后四个元素,然后unshift
它们到数组的开始
(注意:splice
返回一个数组,所以你需要spread
元素出来。)
const arr = [1, 2, 3, 4, 5, 6, 7, 8];
arr.unshift(...arr.splice(-4));
console.log(arr);