📅  最后修改于: 2023-12-03 15:10:22.539000             🧑  作者: Mango
在 JavaScript 中,数组左旋转是指将数组中的一部分元素移动到数组末尾,而不改变它们的相对位置。例如,将数组 [1, 2, 3, 4, 5] 左旋转 2 个位置,得到 [3, 4, 5, 1, 2]。
一种实现数组左旋转的方法是使用 Array.prototype.slice() 方法创建一个新数组。该方法接受两个参数:起始索引和结束索引。在本例中,我们将数组分为两部分:元素 0 到 k 以及元素 k+1 到数组末尾。
function leftRotateArray(arr, k) {
return arr.slice(k).concat(arr.slice(0, k));
}
另一种方法是使用 Array.prototype.splice() 方法。该方法接受三个参数:起始索引、要删除的元素数量和要添加的元素。在本例中,我们先删除元素 0 到 k-1,然后将它们添加到数组末尾。
function leftRotateArray(arr, k) {
arr.splice(arr.length, 0, ...arr.splice(0, k));
return arr;
}
const arr = [1, 2, 3, 4, 5];
const k = 2;
console.log(leftRotateArray(arr, k)); // [3, 4, 5, 1, 2]
数组左旋转是一个有用的操作,它能够轻松实现元素的移动和排序。在 JavaScript 中,我们可以使用 Array.prototype.slice() 或 Array.prototype.splice() 方法来实现数组左旋转。