如何将数组中的多个元素从一个位置移动到另一个位置



我有一个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);

相关内容

  • 没有找到相关文章

最新更新