Trong bài viết này, tôi sẽ chỉ cho bạn hai cách để đảo ngược mảng trong JavaScript.
Các reverse
phương thức mảng đảo ngược một mảng bằng cách biến mục cuối cùng thành mục đầu tiên và biến mục đầu tiên thành mục cuối cùng. Các mục khác ở giữa cũng được đảo ngược tương ứng.
Trước khi cho bạn thấy các ví dụ về reverse
Để tôi chỉ cho bạn cách đảo ngược một mảng mà không cần sử dụng nó.
Tôi có một phiên bản video của bài viết này, bạn cũng có thể kiểm tra.
1. Cách đảo ngược một mảng bằng cách sử dụng for
Vòng
Sử dụng một for
(hoặc bất kỳ loại vòng lặp nào khác), chúng ta có thể lặp qua một mảng từ lần cuối cùng đến mục đầu tiên và đẩy các giá trị đó sang một mảng mới trở thành phiên bản đảo ngược. Đây là cách:
const array = [1, 2, 3, 4]
const reversedArray = []
for(let i = array.length - 1; i >= 0; i--) {
const valueAtIndex = array[i]
reversedArray.push(valueAtIndex)
}
console.log(reversedArray)
// [4, 3, 2, 1]
Bằng cách sử dụng một for
vòng lặp, chúng ta bắt đầu lặp từ chỉ mục của giá trị cuối cùng (array.length - 1
) vào chỉ mục của giá trị đầu tiên (). Sau đó, chúng tôi đẩy các giá trị phù hợp để
reversedArray
.
Nhưng có một cách dễ dàng hơn để đảo ngược một mảng, đó là sử dụng reverse
phương pháp.
2. Cách sử dụng Array.reverse
đảo ngược một mảng
Bạn có thể dùng reverse
phương thức, đây là cách tiếp cận dễ đọc/ghi hơn đối với for
vòng lặp, để đảo ngược một mảng. Phương thức này đảo ngược mảng tại chỗ, có nghĩa là mảng mà nó được sử dụng đã được sửa đổi.
Hãy xem một ví dụ:
const array = [1, 2, 3, 4]
array.reverse()
console.log(array)
// [ 4, 3, 2, 1 ]
Như bạn có thể thấy trong ví dụ này, array
được sửa đổi khi reverse
phương pháp được áp dụng cho nó.
Nếu bạn không muốn array
được sửa đổi, bạn có thể sao chép nó trước khi áp dụng reverse
. Các reverse
phương thức cũng trả về mảng đảo ngược, vì vậy bạn có thể gán mảng đó cho một biến.
Đây là cách sao chép và đảo ngược một mảng:
const array = [1, 2, 3, 4]
const reversed = [...array].reverse()
console.log(reversed)
// [ 4, 3, 2, 1 ]
console.log(array)
// [ 1, 2, 3, 4 ]
Sử dụng toán tử trải rộng ở đây, trước tiên chúng tôi sao chép array
sau đó áp dụng reverse
phương pháp trên bản sao. Mảng đảo ngược được trả về sau đó được trả về reverse
Biến đổi.
Như bạn có thể thấy, bằng cách đăng nhập array
nó không bị ảnh hưởng vì chúng tôi đã nhân bản nó trước.
Cảm ơn vì đã đọc!
Vì vậy, nếu bạn cần đảo ngược một mảng, tôi hy vọng bài viết này đã dạy cho bạn điều gì đó.