মান লিয়ে, আমাদের দুটি JSON অবজেক্ট আছে -
const obj1 = {a: "apple", b: "banana", c: "carrot"};
const obj2 = {a: "apple", e: "egg", b: "banana", c: "carrot", d: "dog"};
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এভাবের দুটি অবজেক্ট গ্রহণ করবে। আমরা চাই দুটি অবজেক্ট তুলনা করা যাক যেকোনো ডেটা সরিয়ে না।
উদাহরণস্বরূপ, উপরের ডেটা দিয়ে বুলিয়ান চেক করলে true রিটার্ন করবে কারণ উভয় অবজেক্টে কমন কীগুলোর ভ্যালু মিলে।
কিন্তু যদি obj1 একই থাকে কিন্তু obj2 হয় -
const obj1 = {a: "apple", b: "banana", c: "carrot"};
const obj2 = {a: "ant", e: "egg", b: "banana", c: "carrot", d: "dog"}
তবে false রিটার্ন করবে কারণ 'a' কী-এর ভ্যালু মিলেনি যদিও অন্যান্য ফিল্ড মিলে এবং কিছু ফিল্ড উভয়ে নেই।
উদাহরণ
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));
আউটপুট
কনসোলে আউটপুট হবে -
true false