মান লিজিয়ে, আমাদের কাছে নিচের মতো দুটি অবজেক্ট আছে:
const a = { Make: "Apple", Model: "iPad", hasScreen: "yes", Review: "Great product!", }; const b = { Make: "Apple", Model: "iPad", waterResistant: false };আমাদের একটি ফাংশন লিখতে হবে যা অবজেক্টগুলোতে কমন প্রোপার্টির সংখ্যা গুনবে (কমন প্রোপার্টি মানে কী এবং ভ্যালু দুটোই একই) এবং ০ থেকে ১০০ (দউই ইনক্লूसিভ) এর মধ্যে একটি নম্বর রিটার্ন করবে যেটি দুটি অবজেক্টের মধ্যে সিমিলারিটি পার্সেন্টেজ রিপ্রেজেন্ট করবে। যেন যদি কোনো কী/ভ্যালু জোড়া ম্যাচ না করে তবে ০, সব ম্যাচ করলে ১০০।
সিমিলারিটি পার্সেন্টেজ কাউন্ট করতে আমরা সিমিলার প্রোপার্টির কাউন্টকে ছোট অবজেক্টটির প্রোপার্টির সংখ্যা (যেটিতে কম কী/ভ্যালু জোড়া আছে) দিয়ে ভাগ করে ফলাফলকে ১০০ দিয়ে গুণ করব।
এই বিষয়গুলো বুঝতে পারলে, এখন এই ফাংশনের কোড লিখি:
উদাহরণ
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
কারণ ছোট অবজেক্টটির ৩টি প্রোপার্টি আছে য 그중 ২টি কমন যা প্রায় ৬৬%।