如何在 JavaScript 中将指定数量的元素移动到数组的末尾?
本文的目的是使用 JavaScript 将一些指定的元素移动到数组的末尾。
给定一个长度为 N 的数组,将一些指定数量的元素(例如 X)移动到给定数组的末尾。
输入:
arr = [1, 2, 3, 4, 5]
X = 2
输出:以下数组应该是输出,因为前两个数字被移动到数组的末尾。
[3, 4, 5, 1, 2]
方法一:
- 首先,我们将从数组中提取第一个 X 元素到一个新数组arr1中。
- 然后将数组中的最后一个 (NX) 元素提取到一个新数组arr2中。
- 然后在arr2之后连接arr1以获得结果数组。
JavaScript 代码:
Javascript
function moveElementsToEndOfArray(arr, x) {
// arr is the input array
// x is the no. of elements that
// needs to be moved to end of
// the array
let n = arr.length;
// if x is greater than length
// of the array
x = x % n;
let first_x_elements = arr.slice(0, x);
let remaining_elements = arr.slice(x, n);
// Destructuring to create the desired array
arr = [...remaining_elements, ...first_x_elements];
console.log(arr);
}
let arr = [1, 2, 3, 4, 5, 6];
let k = 5;
moveElementsToEndOfArray(arr, k);
Javascript
function moveElementsToEndOfArray(arr, x) {
// Array is [1, 2, 3, 4, 5] and x = 2
// final output would be [3, 4, 5, 1, 2]
x = x % (arr.length);
for (let i = 0; i < x; i++) {
arr.push(arr[i]);
}
// After this loop array will
// be [1, 2, 3, 4, 5, 1, 2]
arr.splice(0, x);
// Splice method will remove first
// x = 2 elements from the array
// so array will be [3, 4, 5, 1, 2]
console.log(arr);
}
let arr = [1, 2, 3, 4, 5];
let k = 2;
moveElementsToEndOfArray(arr, k);
输出:
[ 6, 1, 2, 3, 4, 5 ]
方法二:
- 从索引 i = 0 到 X-1 运行for循环
- 在每次迭代中,获取当前索引处的元素并将其附加到数组的末尾。
- 迭代完成后,使用 JavaScript splice()方法从数组中移除前 X 个元素,得到结果数组。
JavaScript 代码:
Javascript
function moveElementsToEndOfArray(arr, x) {
// Array is [1, 2, 3, 4, 5] and x = 2
// final output would be [3, 4, 5, 1, 2]
x = x % (arr.length);
for (let i = 0; i < x; i++) {
arr.push(arr[i]);
}
// After this loop array will
// be [1, 2, 3, 4, 5, 1, 2]
arr.splice(0, x);
// Splice method will remove first
// x = 2 elements from the array
// so array will be [3, 4, 5, 1, 2]
console.log(arr);
}
let arr = [1, 2, 3, 4, 5];
let k = 2;
moveElementsToEndOfArray(arr, k);
输出:
[ 3, 4, 5, 1, 2 ]