So sánh mảng trong JavaScript
So sánh mảng trong JavaScript
So sánh xem 2 mảng có giống nhau không là điều mà đôi khi chúng ta phải làm trong ứng dụng JavaScript của mình.
Trong bài viết này, chúng ta sẽ xem xét các cách để so sánh mảng trong JavaScript.
>> Xem ngay Tài liệu Java Core giúp bạn “Nâng Cấp” kỹ năng lập trình
Vòng lặp for
Thông thường, chúng ta sẽ suy nghĩ đến các bước đơn giản nhất để so sánh mảng trong JavaScript. Đầu tiên là kiểm tra số lượng phần tử trong 2 mảng. Nếu khác nhau thì rõ ràng 2 mảng đó không thể giống nhau.
Khi mà số lượng phần tử trong 2 mảng bằng nhau, chúng ta sẽ kiểm tra các phần tử cùng vị trí để xem chúng có trùng nhau hay không.
Rất đơn giản, chúng ta có thể sử dụng vòng lặp for để thực hiện việc so sánh mảng trong JavaScript như sau:
const a = [1, 2, 3, 5]; const b = [1, 2, 3, 5]; let isEqual; if(a.length !== b.length) { isEqual = false; } else { for (let i = 0; i < a.length; i++) { if(a[i] !== b[i]) { isEqual = false; break; } isEqual = true; } } console.log(isEqual);Code language: JavaScript (javascript)
Array.prototype.every
Nếu như việc thực hiện vòng lặp for để so sánh mảng trong JavaScript như ví dụ trên quá rườm ra, bạn có thể sử dụng phương thức every của mảng để kiểm tra xem mọi phần tử trong một mảng có nằm trong mảng mà chúng ta đang so sánh hay không.
Nếu chúng có cùng độ dài và mỗi phần tử trong một mảng này cũng nằm trong mảng kia, thì chúng ta biết rằng cả hai mảng đều giống nhau.
Ví dụ:
const array1 = [1, 2, 3] const array2 = [1, 2, 3] const sameArray = array1.length === array2.length && array1.every((value, index) => value === array2[index]) console.log(sameArray)Code language: JavaScript (javascript)
Chúng ta có 2 mảng array1 và array2 có nội dung giống nhau. Chúng ta kiểm tra xem cả hai có cùng độ dài hay không trước. Sau đó chúng ta gọi every để so sánh value với array2[index].
Lodash isEqual
Chúng ta cũng có thể sử dụng phương pháp Lodash’s isEqual để so sánh 2 mảng xem chúng có nội dung giống nhau hay không.
Ví dụ:
const array1 = [1, 2, 3] const array2 = [1, 2, 3] const sameArray = _.isEqual(array1, array2) console.log(sameArray)Code language: JavaScript (javascript)
Chúng ta chỉ cần đưa các mảng mà chúng ta muốn so sánh làm đối số của hàm isEqual.
JSON.stringify
Ngoài ra, chúng ta có thể thực hiện các phép so sánh mảng đơn giản với phương thức JSON.stringify.
Nó sẽ chuyển đổi mảng thành chuỗi JSON. Sau đó, chúng ta có thể so sánh các mảng được xâu chuỗi trực tiếp.
const array1 = [1, 2, 3] const array2 = [1, 2, 3] const sameArray = JSON.stringify(array1) === JSON.stringify(array2); console.log(sameArray)Code language: JavaScript (javascript)
Kết luận
Chúng ta có thể sử dụng một số cách để so sánh xem 2 mảng có giống nhau trong JavaScript hay không. Cách đơn giản nhất là sử dụng JSON.stringify để so sánh các phiên bản được xâu chuỗi của các mảng.
Ngoài ra, chúng ta có thể sử dụng phương thức every để kiểm tra từng phần tử của một mảng để xem chúng có giống nhau hay không.
Cuối cùng, chúng ta có thể sử dụng phương thức Lodash isEqual để so sánh 2 mảng.
Cảm ơn bạn đã theo dõi bài viết!
Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.
Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.
TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI BẮT ĐẦU
KHOÁ HỌC BOOTCAMP JAVA/PHP/.NET TRỞ THÀNH LẬP TRÌNH VIÊN TRONG 5-6 THÁNG