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

{{FormatNumbertoThousand(model.total_like)}} lượt thích
453 lượt xem
Javascript middle

Các giá trị non-primitive, như các object (bao gồm cả hàm và mảng) được giữ bởi tham chiếu, vì vậy cả hai phép so sánh "=="và "===" sẽ chỉ kiểm tra xem các tham chiếu có khớp nhau hay không, chứ không phải kiểm tra bất kỳ điều gì về các giá trị cơ bản.

Ví dụ: theo mặc định, mảng được ép thành chuỗi bằng cách chỉ cần nối tất cả các giá trị bằng dấu phẩy (,) ở giữa. Vì vậy, hai mảng có cùng nội dung sẽ không là true khi so sánh bằng ==:

var a = [1,2,3];
var b = [1,2,3];
var c = "1,2,3";
a == c; // true
b == c; // true
a == b; // false

Để deep-comparison các object, hãy sử dụng các lib bên ngoài như deep-equal hoặc triển khai một thuật toán của riêng bạn.

{{login.error}}