Hướng dẫn how do you compare things in javascript? - làm thế nào để bạn so sánh mọi thứ trong javascript?
Thật đơn giản để so sánh các giá trị nguyên thủy trong JavaScript. Chỉ cần sử dụng bất kỳ toán tử EQality nào có sẵn, ví dụ như bình đẳng nghiêm ngặt: Show
Các đối tượng, tuy nhiên, khó so sánh hơn vì chúng là dữ liệu có cấu trúc. Trong bài đăng này, bạn sẽ học cách so sánh chính xác các đối tượng trong JavaScript. 1. Bình đẳng tham chiếuJavaScript cung cấp 3 cách để so sánh các giá trị:
Khi so sánh các đối tượng bằng cách sử dụng bất kỳ điều nào ở trên, so sánh đánh giá thành 1 chỉ khi tham chiếu giá trị được so sánh cùng một thể hiện đối tượng. Đây là sự bình đẳng tham khảo. Hãy xác định các đối tượng 2 và 3 và xem sự bình đẳng tham khảo trong thực tế:
4 đánh giá thành 1 vì cả hai toán hạng đều chỉ vào cùng một thể hiện đối tượng 2. Mặt khác, 7 đánh giá thành 8 vì các toán hạng 2 và 3 là các trường hợp đối tượng khác nhau. Điều thú vị là 2 và 3 Đối tượng có cùng nội dung: cả hai đều có một thuộc tính 3 với giá trị 4. Tuy nhiên, thậm chí so sánh các đối tượng của cùng một cấu trúc, 7 đánh giá thành 8. Bình đẳng tham chiếu là hữu ích khi bạn muốn so sánh các tài liệu tham khảo đối tượng, thay vì nội dung của chúng. Nhưng trong hầu hết các tình huống bạn cần so sánh nội dung thực tế của các đối tượng: các thuộc tính và giá trị của chúng. Hãy xem làm thế nào để làm điều đó. 2. So sánh thủ côngCách rõ ràng để so sánh các đối tượng bằng nội dung là đọc các thuộc tính và so sánh chúng theo cách thủ công. Ví dụ: chúng ta hãy viết một chức năng đặc biệt 7 so sánh 2 đối tượng anh hùng:
7 truy cập vào thuộc tính 3 của cả hai đối tượng và so sánh các giá trị của chúng. Nếu các đối tượng được so sánh có một vài thuộc tính, tôi thích viết các hàm so sánh như 7. Các chức năng như vậy có hiệu suất tốt - chỉ một vài người truy cập tài sản và nhà khai thác bình đẳng có liên quan đến việc so sánh. So sánh thủ công yêu cầu trích xuất thủ công các thuộc tính - đối với các đối tượng đơn giản, đó không phải là vấn đề. Nhưng để so sánh các đối tượng lớn hơn (hoặc các đối tượng của cấu trúc chưa biết), so sánh thủ công không thuận tiện vì nó đòi hỏi nhiều mã nồi hơi. Hãy xem làm thế nào sự bình đẳng nông của các đối tượng có thể giúp ích. 3. Bình đẳng nôngTrong quá trình kiểm tra bình đẳng nông của các đối tượng, bạn nhận được danh sách các thuộc tính (sử dụng 1) của cả hai đối tượng, sau đó kiểm tra các giá trị của các thuộc tính cho sự bình đẳng. Đây là việc thực hiện kiểm tra bình đẳng nông:
Bên trong hàm, 2 và 3 là các mảng chứa tương ứng tên thuộc tính của 4 và 5. 6 Chu kỳ lặp lại trên các khóa và so sánh từng thuộc tính của 4 và 5 cho bình đẳng 9. Hãy sử dụng bình đẳng nông để so sánh các đối tượng với nhiều thuộc tính:
0 trả về 1 vì các đối tượng 2 và 3 có cùng các thuộc tính ( 3 và 5) với cùng các giá trị. Ở phía bên kia, 6 trả về 8 kể từ 2 và 9 có các thuộc tính khác nhau. Nếu các giá trị của các thuộc tính của các đối tượng để so sánh là các giá trị nguyên thủy, kiểm tra bình đẳng nông là cách để đi. Nhưng các đối tượng trong JavaScript có thể được lồng nhau. Trong trường hợp như vậy, thật không may, sự bình đẳng nông không hoạt động tốt. Hãy thực hiện kiểm tra bình đẳng nông trên các đối tượng có các đối tượng lồng nhau:
Lần này, ngay cả cả 2 và 3 có cùng một nội dung, 0 trả về 8. Các đối tượng lồng nhau 4 và 5 là các thể hiện đối tượng khác nhau. Do đó, bình đẳng nông cho rằng 4 và 5 là các giá trị khác nhau. May mắn thay, sự bình đẳng sâu sắc so sánh chính xác các đối tượng chứa các đối tượng khác. Hãy xem nó hoạt động như thế nào. 4. Bình đẳng sâu sắcSự bình đẳng sâu sắc tương tự như bình đẳng nông, nhưng với một sự khác biệt. Trong quá trình kiểm tra nông, nếu các thuộc tính được so sánh là đối tượng, kiểm tra bình đẳng nông đệ quy được thực hiện trên các đối tượng lồng nhau này. Hãy xem việc thực hiện kiểm tra bình đẳng sâu:
Dòng được tô sáng 8 chỉ ra rằng ngay khi các thuộc tính được so sánh là đối tượng, một cuộc gọi đệ quy bắt đầu xác minh xem các đối tượng lồng nhau cũng bằng nhau. Bây giờ, chúng ta hãy xem một ví dụ về 9:
Hàm bình đẳng sâu xác định chính xác rằng 2 và 3 có cùng các thuộc tính và giá trị, bao gồm cả sự bình đẳng của các đối tượng lồng nhau 4 và 5. Để so sánh sâu sắc các đối tượng tôi khuyên bạn nên sử dụng:
5. Tóm tắtBình đẳng tham chiếu (sử dụng 0) xác định xem các toán hạng có phải là cùng một thể hiện đối tượng hay không. Kiểm tra bình đẳng thủ công yêu cầu so sánh thủ công các giá trị của các thuộc tính. Mặc dù séc này yêu cầu viết bằng tay các thuộc tính để so sánh, tôi thấy phương pháp này thuận tiện vì tính đơn giản của nó. Khi các đối tượng được so sánh có rất nhiều thuộc tính hoặc cấu trúc của các đối tượng được xác định trong thời gian chạy, một cách tiếp cận tốt hơn là sử dụng kiểm tra nông. Cuối cùng, nếu các đối tượng được so sánh có các đối tượng lồng nhau, kiểm tra bình đẳng sâu là cách để đi. Hy vọng, bài viết của tôi đã giúp bạn hiểu các chi tiết cụ thể về việc kiểm tra các đối tượng trong JavaScript. Vấn đề chính khi sử dụng 9 để so sánh các đối tượng là gì? Làm thế nào để bạn so sánh các đối tượng trong JavaScript?Cách so sánh hai đối tượng trong JavaScript.. Thông thường, khi bạn so sánh các loại dữ liệu như INT và chuỗi trong JavaScript, bạn sử dụng các toán tử bình đẳng (== và ===). .... Để khắc phục điều này, một tùy chọn là xâu chuỗi cả hai đối tượng và sau đó sử dụng các toán tử bình đẳng .. Chúng ta có thể so sánh 2 đối tượng trong JavaScript không?Chúng tôi không thể thực hiện toán tử == hoặc hoặc người vận hành ===, để so sánh hai đối tượng.Cách tốt hơn để thực hiện so sánh là sử dụng JSON.Chuỗi và so sánh các đối tượng.. The better way to do the comparison is to use JSON. Stringify and compare the objects.
== và === trong JavaScript là gì?Các toán tử trong JavaScript được sử dụng để so sánh hai giá trị.Toán tử == Kiểm tra xem hai giá trị có bằng nhau không.The == operator checks if two values are equal. The != operator checks if two values are not equal.
Làm thế nào để bạn so sánh các biến trong JavaScript?= được sử dụng để gán các giá trị cho một biến trong JavaScript.== được sử dụng để so sánh giữa hai biến không phân biệt kiểu dữ liệu của biến.=== được sử dụng để so sánh giữa hai biến nhưng điều này sẽ kiểm tra loại nghiêm ngặt, có nghĩa là nó sẽ kiểm tra kiểu dữ liệu và so sánh hai giá trị.== is used for comparison between two variables irrespective of the datatype of variable. === is used for comparision between two variables but this will check strict type, which means it will check datatype and compare two values. |