Giả sử có hai đối tượng JSON:
const obj1 = {a: "apple", b: "banana", c: "carrot"};
const obj2 = {a: "apple", e: "egg", b: "banana", c: "carrot", d: "dog"};Viết hàm so sánh hai đối tượng boolean mà không cần xóa dữ liệu. Trả về true nếu các key chung có giá trị giống nhau.
Ví dụ obj1 không đổi, obj2 thay đổi a: "ant" → trả về false.
Ví dụ
const obj1 = { a: "apple", b: "banana", c: "carrot" };
const obj2 = { a: "apple", b: "banana", c: "carrot", d: "dog", e: "egg" };
const obj3 = {a: "apple", b: "banana", c: "carrot"};
const obj4 = {a: "ant", e: "egg", b: "banana", c: "carrot", d: "dog"};
function checkEquality(a, b) {
const entries1 = Object.entries(a);
const entries2 = Object.entries(b);
const short = entries1.length > entries2 ? entries2 : entries1;
const long = short === entries1 ? b : a;
const isEqual = short.every(([k, v]) => long[k] === v);
return isEqual;
}
console.log(checkEquality(obj1, obj2));
console.log(checkEquality(obj3, obj4));Kết quả
Kết quả in ra console:
true false