Làm thế nào để so sánh hai object
trong JavaScript?
Làm thế nào để so sánh hai object
trong JavaScript?
So sánh hai đối tượng trong JavaScript không giống như so sánh các kiểu dữ liệu nguyên thủy (primitive types) như số hoặc chuỗi. Đối với các đối tượng, việc so sánh chúng dựa trên tham chiếu (reference) chứ không phải giá trị. Điều này có nghĩa là ngay cả khi hai đối tượng có cùng cấu trúc và giá trị, chúng vẫn không bằng nhau nếu chúng không tham chiếu đến cùng một vị trí trong bộ nhớ
Khi sử dụng toán tử ===
để so sánh hai đối tượng, JavaScript sẽ kiểm tra xem cả hai có trỏ đến cùng một đối tượng trong bộ nhớ hay không. Nếu hai biến tham chiếu đến cùng một đối tượng, kết quả sẽ là true
; nếu không, kết quả sẽ là false
Để so sánh hai đối tượng dựa trên giá trị của chúng, bạn cần sử dụng các phương pháp khác. Dưới đây là một số cách phổ biến:
Sử dụng JSON.stringify()
: Phương pháp này chuyển đổi đối tượng thành chuỗi JSON và sau đó so sánh hai chuỗi này. Tuy nhiên, phương pháp này có hạn chế là thứ tự của các thuộc tính trong đối tượng phải giống nhau và không xử lý được các đối tượng có tham chiếu tuần hoàn
let a = { name: 'Dionysia', age: 29 };
let b = { name: 'Dionysia', age: 29 };
console.log(JSON.stringify(a) === JSON.stringify(b)); // true hoặc false tùy thuộc vào thứ tự của thuộc tính
Sử dụng thư viện Lodash: Phương thức _.isEqual()
của Lodash thực hiện so sánh sâu (deep compa...
middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào