Câu hỏi phỏng vấn Javascript
Câu hỏi

Làm thế nào để so sánh hai object trong JavaScript?

Câu trả lời

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ớ

So sánh bằng tham chiếu

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 bằng giá trị

Để 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:

  1. 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

    javascript Copy
    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
  2. 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

middle

Gợi ý câu hỏi phỏng vấn

middle

So sánh sự khác nhau của forEach()map() trong Javascript?

middle

Thuộc tính NaN trong JavaScript là gì?

senior

Higher-Order Function trong Javascript là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào