ধরা যাক, আমাদের কাছে এই ধরনের দুটি বস্তু আছে -
const a = { Make: "Apple", Model: "iPad", hasScreen: "yes", Review: "Great product!", }; const b = { Make: "Apple", Model: "iPad", waterResistant: false };
আমাদের এমন একটি ফাংশন লিখতে হবে যা বস্তুর সাধারণ বৈশিষ্ট্যের সংখ্যা গণনা করে (সাধারণ বৈশিষ্ট্য দ্বারা আমরা বোঝায় কী এবং মান উভয়ই একই) এবং 0 এবং 100 (উভয় সহ) এর মধ্যে একটি সংখ্যা প্রদান করে যা বস্তুর মধ্যে মিলের শতাংশকে প্রতিনিধিত্ব করে। লাইক যদি কোনো কী/মান জোড়া মেলে না তা হবে 0, সব মিলে গেলে 100 হবে।
সাদৃশ্যের শতাংশ গণনা করতে আমরা অনুরূপ সম্পত্তির গণনাকে ছোট বস্তুর বৈশিষ্ট্যের সংখ্যা দিয়ে ভাগ করতে পারি (যেটিতে কম কী/মান জোড়া আছে) এবং এই ফলাফলটিকে 100 দ্বারা গুণ করতে পারি।
সুতরাং, এটি বোঝার সাথে, এখন এই ফাংশনের জন্য কোড লিখি -
উদাহরণ
const a = { Make: "Apple", Model: "iPad", hasScreen: "yes", Review: "Great product!", }; const b = { Make: "Apple", Model: "iPad", waterResistant: false }; const findSimilarity = (first, second) => { const firstLength = Object.keys(first).length; const secondLength = Object.keys(second).length; const smaller = firstLength < secondLength ? first : second; const greater = smaller === first ? second : first; const count = Object.keys(smaller).reduce((acc, val) => { if(Object.keys(greater).includes(val)){ if(greater[val] === smaller[val]){ return ++acc; }; }; return acc; }, 0); return (count / Math.min(firstLength, secondLength)) * 100; }; console.log(findSimilarity(a, b));
আউটপুট
কনসোলে আউটপুট হবে −
66.66666666666666
কারণ ছোট বস্তুটির 3টি বৈশিষ্ট্য রয়েছে যার মধ্যে 2টি সাধারণ যার পরিমাণ প্রায় 66%।