Đả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
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
và 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.
Đ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ử.
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
và 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
và 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
- 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