কম্পিউটার টিউটোরিয়াল

JavaScript-এ দুটি অবজেক্ট তুলনা করে সিমিলারিটি পার্সেন্টেজ বের করা


মান লিজিয়ে, আমাদের কাছে নিচের মতো দুটি অবজেক্ট আছে:

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

কারণ ছোট অবজেক্টটির ৩টি প্রোপার্টি আছে য 그중 ২টি কমন যা প্রায় ৬৬%।


  1. জাভাস্ক্রিপ্টে দুটি অ্যারেতে অনুপস্থিত একক সংখ্যা বের করা

  2. জাভাস্ক্রিপ্টে ডেসিমেল সংখ্যার বিট রিভার্স করে নতুন ডেসিমেল বের করা

  3. জাভাস্ক্রিপ্টে দুটি IP ভালুর মধ্যবর্তী IP অ্যাড্রেস সংখ্যা গণনা

  4. জাভাস্ক্রিপ্টে সংখ্যাকে প্রাইম ফ্যাক্টর পাওয়ার ও প্রোডাক্ট আকারে প্রকাশ করা