📌  相关文章
📜  如何在 JavaScript 中将指定数量的元素移动到数组的末尾?

📅  最后修改于: 2022-05-13 01:56:40.634000             🧑  作者: Mango

如何在 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 ]