Đối tượng so sánh nông javascript là gì?
Có gì sai với ví dụ3 và ví dụ4? Show
Sự khác biệt duy nhất là ở đây chúng ta đang đi sâu và chỉ so sánh các nguyên thủy Tại sao tôi nên sử dụng so sánh nông sau đó?Vì vậy, mặc dù có vẻ như so sánh sâu sắc là điều mọi người cần, nhưng thực tế lại khác một chút Một trường hợp sử dụng như vậy là React Js, React sử dụng hàm nôngCompare() để tạo các Thành phần thuần túy. ShallowCompare là cách hiệu quả để phát hiện các thay đổi, nó hy vọng bạn không làm thay đổi dữ liệu Hơn nữa, vì chúng tôi không lặp lại thông qua đứa trẻ, chúng tôi tiết kiệm được rất nhiều thời gian, vì vậy so sánh nông là cách nhanh hơn Trong JavaScript, các đối tượng luôn được lưu trữ theo tham chiếu. Điều đó có nghĩa là một đối tượng hoàn toàn bằng một đối tượng khác chỉ khi cả hai đều trỏ đến cùng một đối tượng trong bộ nhớ Tuy nhiên, nếu bạn muốn kiểm tra xem hai POJO có cùng dữ liệu hay không? Keys và Values Shallow EqualMột cách tiếp cận đơn giản là lặp qua từng khóa và giá trị trong hai đối tượng và kiểm tra xem các khóa và giá trị có hoàn toàn bằng nhau không Bình đẳng sâu sắc bằng cách sử dụng JSON.stringify()Phần trước cho biết cách so sánh các đối tượng bằng cách kiểm tra xem khóa và giá trị của hai đối tượng có hoàn toàn bằng nhau không. Nhưng nếu một trong các giá trị là một đối tượng thì sao? Bạn có thể tạo đệ quy Hàm Thứ hai, không phải tất cả các loại đều có thể biểu diễn trong JSON. Hàm Sử dụng isEqual() của LodashHàm Hàm Nếu bạn đang sử dụng Lodash, thì Rất có thể bạn đã từng nghe những thuật ngữ đó trước đây, nhưng trong trường hợp bạn chưa nghe, hãy tìm hiểu một số quyền về khái niệm So sánh nông và sâuChúng là một kỹ thuật để giải quyết vấn đề so sánh mà Toán tử JavaScript cơ bản không thể tự giải quyết, chẳng hạn như so sánh xem hai đối tượng có bằng nhau về loại dữ liệu, kích thước và giá trị hay không Và như bạn có thể đoán, chiến lược ┌────────────────────┬─────────┬──────┐ 4 so sánh bề ngoài sự bằng nhau của 2 toán hạng — chỉ ở cấp độ sâu thứ nhất— trong khi chiến lược ┌────────────────────┬─────────┬──────┐ 5 so sánh sự bằng nhau từ tất cả các cấp độ sâuVì vậy, cái nào tôi nên chọn?Chà, nó phụ thuộc vào trường hợp sử dụng của bạn. Điều quan trọng nhất là bạn phải thực sự hiểu vấn đề mà bạn đang giải quyết bằng mã của mình và sự đánh đổi của từng phương pháp Nói về sự đánh đổiHãy liệt kê một số ưu và nhược điểm của từng phương pháp ┌────────────────────┬─────────┬──────┐ phụ thuộc Chúng tôi sẽ sử dụng phiên bản cải tiến của toán tử JavaScript ┌────────────────────┬─────────┬──────┐ 6 mà chúng tôi đã trình bày ở đây trước đây, nếu bạn chưa đọc nó, hãy nhấp vào liên kết bên dưới và xem thử
So sánh đối tượng cạn là gì?so sánh nông là khi các thuộc tính của đối tượng được so sánh được thực hiện bằng cách sử dụng "===" hoặc đẳng thức nghiêm ngặt và sẽ không tiến hành so sánh sâu hơn vào các thuộc tính.
So sánh cạn và sâu là gì?Và như bạn có thể đã đoán, chiến lược nông so sánh bề ngoài sự bằng nhau của 2 toán hạng — chỉ ở mức độ sâu thứ nhất— trong khi chiến lược sâu so sánh sự bằng nhau từ tất cả các mức độ sâu.
Cách tốt nhất để so sánh các đối tượng trong JavaScript là gì?Cách so sánh hai đối tượng trong JavaScript . Thông thường, khi bạn so sánh các kiểu dữ liệu như int và chuỗi trong JavaScript, bạn sử dụng các toán tử đẳng thức ( == 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 toán tử đẳng thức Làm cách nào chúng ta có thể so sánh hai đối tượng trong JavaScript?isEqaul là thuộc tính của lodash dùng để so sánh các đối tượng JavaScript . Nó được sử dụng để biết liệu hai đối tượng có giống nhau hay không. Ví dụ, có hai mảng có số phần tử bằng nhau, thuộc tính và giá trị cũng giống nhau. Ngay cả các thuộc tính không theo cùng một thứ tự, nó sẽ trả về true. |