Đảo ngược một mảng với những hạn chế nhất định là một trong những thách thức phổ biến nhất mà bạn sẽ thấy trong các cuộc phỏng vấn việc làm và các câu đố viết mã. Hướng dẫn này sẽ chỉ cho bạn năm cách để đảo ngược một mảng trong JavaScript có và không có phương pháp đảo ngược, cùng với các đoạn mã mà bạn có thể sử dụng.

Bạn đang xem : đảo ngược một mảng trong javascript

Đảo ngược một mảng với các hạn chế nhất định là một trong những thách thức phổ biến nhất mà bạn sẽ gặp trong các cuộc phỏng vấn việc làm và các câu đố viết mã.

Hướng dẫn này sẽ chỉ cho bạn năm cách để đảo ngược một mảng trong JavaScript có và không có phương thức reverse , cùng với các đoạn mã mà bạn có thể sử dụng.

Cách Đảo ngược Mảng trong JavaScript bằng Phương pháp Đảo ngược

Khi bạn cần đảo ngược một mảng trong JavaScript, bạn có thể sử dụng phương thức reverse , phương thức này sẽ đặt phần tử cuối cùng trước và phần tử đầu tiên sau cùng:

  let number = [1, 2, 3, 4, 5];
để cho đảo ngượcNumbers = số.reverse ();

console.log (Số bị đảo ngược);
// [5, 4, 3, 2, 1]  

Đảo ngược mảng bằng JavaScript

Nhưng hãy nhớ rằng phương thức reverse cũng sẽ sửa đổi mảng ban đầu :

  let number = [1, 2, 3, 4, 5];
để cho đảo ngượcNumbers = số.reverse ();

console.log (Số bị đảo ngược);
// [5, 4, 3, 2, 1]

console.log (số);
// [5, 4, 3, 2, 1]  

Phương thức đảo ngược sửa đổi mảng ban đầu

Một số thách thức mã hóa có thể muốn bạn giữ nguyên mảng ban đầu, vì vậy hãy xem cách bạn có thể đảo ngược một mảng mà không thay đổi mảng ban đầu.

Cách Đảo ngược Mảng trong JavaScript bằng Toán tử Spread

Bạn có thể sử dụng kết hợp toán tử spread và phương thức reverse để đảo ngược mảng mà không thay đổi mảng ban đầu.

Đầu tiên, bạn đặt các phần tử được trả về từ toán tử spread vào một mảng mới bằng cách đặt cú pháp spread bằng dấu ngoặc vuông [] :

  [... number]  

Sau đó, bạn gọi phương thức reverse trên mảng. Bằng cách này, phương thức reverse sẽ được thực thi trên mảng mới thay vì mảng ban đầu:

  let number = [1, 2, 3, 4, 5];
let reverseedNumbers = [... số] .reverse ();

console.log (Số bị đảo ngược);
// [5, 4, 3, 2, 1]

console.log (số);
// [1, 2, 3, 4, 5]  

Sử dụng spread và reverse để đảo ngược mảng

Xem Thêm  5 cách để kiểm tra xem một mảng có chứa giá trị trong JavaScript hay không - javascript kiểm tra xem giá trị có trong mảng không

Lưu ý: phương thức spread là cú pháp ES6. Khi bạn cần hỗ trợ các trình duyệt cũ hơn hoặc bạn muốn sử dụng cú pháp ES5, bạn có thể kết hợp các phương thức lát ngược lại . Hãy xem xét điều đó ngay bây giờ.

Cách Đảo ngược Mảng trong JavaScript với Phương thức Slice và Reverse

Phương thức slice được sử dụng để trả về các phần tử đã chọn dưới dạng một mảng mới. Khi bạn gọi phương thức mà không có bất kỳ đối số nào, nó sẽ trả về một mảng mới giống với mảng ban đầu (từ phần tử đầu tiên đến phần tử cuối cùng).

Tiếp theo, bạn gọi ngược lại trên mảng mới trả về. Đây là lý do tại sao mảng ban đầu không bị đảo ngược:

  let number = [1, 2, 3, 4, 5];
hãy để đảo ngượcNumbers = number.slice (). reverse ();

console.log (Số bị đảo ngược);
// [5, 4, 3, 2, 1]

console.log (số);
// [1, 2, 3, 4, 5]  

Sử dụng phương thức lát cắt và đảo ngược để đảo ngược mảng

Cách Đảo ngược một mảng trong JavaScript mà không có Phương pháp Đảo ngược

Đôi khi một cuộc phỏng vấn xin việc sẽ yêu cầu bạn đảo ngược một mảng mà không có phương pháp reverse . Không vấn đề gì! Bạn có thể sử dụng kết hợp vòng lặp for và phương thức mảng push như trong ví dụ dưới đây:

  let number = [1, 2, 3, 4, 5];
hãy để đảo ngượcNumbers = [];

for (cho i = number.length -1; i & gt; = 0; i--) {
  reverseNumbers.push (số [i]);
}

console.log (reverseNumbers);  

Đảo ngược mảng với vòng lặp for và phương thức push

Cách thực hiện Viết hàm ngược của riêng bạn trong JS

Cuối cùng, giả sử bạn được giao nhiệm vụ viết hàm ngược của riêng mình cần đảo ngược một mảng mà không cần tạo bản sao. Điều này thoạt nghe có vẻ phức tạp, nhưng đừng lo lắng vì nó thực sự khá dễ dàng.

Xem Thêm  Sử dụng jQuery để thay đổi văn bản của phần tử HTML - thay đổi văn bản bằng jquery

Điều bạn cần làm ở đây là hoán đổi phần tử đầu tiên và cuối cùng của mảng, sau đó hoán đổi phần tử thứ hai và phần tử thứ hai thành cuối cùng, v.v. cho đến khi bạn đã hoán đổi tất cả các phần tử.

js-array-reverse-function-1 Một hàm để đảo ngược một mảng

Hãy viết một hàm để thực hiện điều đó.

Viết hàm customReverse < / code> và lưu trữ cả chỉ mục đầu tiên tại 0 và chỉ mục cuối cùng bằng cách sử dụng array.length - 1 dưới dạng các biến.

  function customReverse (originalArray) {

  để leftIndex = 0;
  let rightIndex = originalArray.length - 1;
}  

Tiếp theo, tạo vòng lặp while chạy miễn là leftIndex nhỏ hơn rightIndex .

Bên trong vòng lặp này, hãy hoán đổi giá trị của leftIndex rightIndex . Bạn có thể lưu trữ tạm thời một trong các giá trị trong biến tạm thời:

  while (leftIndex & lt; rightIndex) {

  // Hoán đổi các phần tử
  let temp = originalArray [leftIndex];
  originalArray [leftIndex] = originalArray [rightIndex];
  originalArray [rightIndex] = temp;
}  

Cuối cùng, di chuyển leftIndex lên và rightIndex xuống. Khi vòng lặp while lặp lại, nó sẽ hoán đổi phần tử thứ hai và phần tử thứ hai thành phần tử cuối cùng, v.v.:

  function customReverse ( originalArray) {

  để leftIndex = 0;
  let rightIndex = originalArray.length - 1;

  trong khi (leftIndex & lt; rightIndex) {

    // Hoán đổi các phần tử bằng biến tạm thời
    let temp = originalArray [leftIndex];
    originalArray [leftIndex] = originalArray [rightIndex];
    originalArray [rightIndex] = temp;

    // Di chuyển các chỉ mục vào giữa
    leftIndex ++;
    rightIndex--;
  }
}  

Mã mảng đảo ngược hoàn chỉnh

Vòng lặp sẽ dừng ngay khi không còn phần tử nào để đảo ngược. Đối với các mảng có kích thước lẻ, giá trị của leftIndex rightIndex sẽ bằng nhau, do đó không cần hoán đổi nữa. Đối với kích thước chẵn, leftIndex sẽ lớn hơn rightIndex .

Bạn có thể kiểm tra hàm để xem nó có hoạt động bình thường như sau không: < / p>

  let myArray = [1, 2, 3, 4, 5];

customReverse (myArray);

console.log (myArray);

// đầu ra là [5, 4, 3, 2, 1]  

Kiểm tra hàm mảng đảo ngược

Kết luận

Xin chúc mừng! Bạn không chỉ học được cách đảo ngược một mảng trong JavaScript mà còn cả cách viết hàm đảo ngược của riêng bạn.

Dưới đây là một số hướng dẫn JavaScript khác mà bạn có thể quan tâm:


Xem thêm những thông tin liên quan đến chủ đề đảo ngược một mảng trong javascript

JavaScript Video Tutorial - Sorting and Reverse Sorting an Array

alt

  • Tác giả: Toptal
  • Ngày đăng: 2015-01-19
  • Đánh giá: 4 ⭐ ( 4529 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: The JavaScript array prototype provides methods to sort an array and reverse an array. This video example will show you how to arrange an array using sort, as well as reverse and sort with a custom compare function.

Đảo ngược mảng trong JavaScript

  • Tác giả: laptrinhcanban.com
  • Đánh giá: 4 ⭐ ( 8655 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn tất cả cách đảo ngược mảng trong JavaScript. Bạn sẽ học được cách sử dụng các phương thức như reverse(), sort() hoặc vòng lặp for để đảo ngược mảng JavaScript sau bài học này.

Sắp xếp mảng trong JavaScript

  • Tác giả: laptrinhtudau.com
  • Đánh giá: 5 ⭐ ( 6603 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Sắp xếp mảng trong JavaScript - Lập Trình Từ Đầu 1 JavaScript Căn Bản

[Thực hành] Đảo ngược các phần tử trong mảng

  • Tác giả: codegym.vn
  • Đánh giá: 4 ⭐ ( 7169 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Mô tả- đảo ngược các phần tử trong mảng. Viết một chương trình JavaScript thực hiện đảo ngược các giá trị trong một mảng đã cho. Không sử dụng phương...

Đảo ngược mảng trong JavaScript

  • Tác giả: hocjavascript.net
  • Đánh giá: 4 ⭐ ( 1719 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài viết này sẽ giới thiệu đến bạn một số công thức để đảo ngược mảng trong JavaScript hay còn gọi là đảo ngược thứ tự của các phần tử

Đảo ngược mảng trong Javascript mà không làm thay đổi mảng gốc

  • Tác giả: qastack.vn
  • Đánh giá: 5 ⭐ ( 7296 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Bạn có thể sử dụng lát () để tạo một bản sao rồi đảo ngược ()…

Đảo ngược mảng mà không thay đổi vị trí của các phần tử nhất định JavaScript

  • Tác giả: vn.wsxdn.com
  • Đánh giá: 4 ⭐ ( 8458 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php