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

জাভাস্ক্রিপ্টে অবজেক্টের মধ্যে সবচেয়ে ছোট দূরত্ব বের করা


মান লিজিয়ে, আমাদের কাছে একটি অবজেক্ট আছে অ্যারেগুলোরভাবে এইভাবে −

const obj = {    obj1: [ 0, 10 ],    obj2: [ 3, 9 ],    obj3: [ 5, 12, 14 ] };

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একমাত্র এই ধরনের একটি অবজেক্ট অফ অ্যারে নেয়। লক্ষ্য করুন যে প্রতিটি অবজেক্টের একাধিক দূরত্ব পয়েন্ট আছে, কিন্তু শুধু একটি অন্য অবজেক্টের দূরত্ব পয়েন্টের সাথে কম্বাইন করার জন্য বেছে নেওয়া হবে।

উপরের দূরত্ব পয়েন্টের ভিত্তিতে তিনটি অবজেক্টকে ১২ ভাবে কম্বাইন করা যায়।

উদাহরণস্বরূপ, এটা হতে পারে −

[0,3,5];

এই কেসে, তিনটি অবজেক্টের মোট দূরত্ব হবে 5 - 0 = 5;

অথবা হতে পারে [10, 9, 5], এবং দূরত্ব হবে −

10 − 5 = 5;

কম্বিনেশনটি হতে পারে [0, 3, 12] এবং দূরত্ব হবে −

12 − 0 = 12;

আমরা যা অর্জন করতে চাই সেটি হল সবচেয়ে ছোট কম্বিনেশন খুঁজে বের করা, যা এই কেসে হওয়া উচিত [10,9, 12]; এবং দূরত্ব 12−9 =3;

লক্ষ্য করুন যে সবচেয়ে ছোট দূরত্ব বলতে গ্রুপের সবচেয়ে বড় এবং ছোট উপাদানের পার্থক্যকে বোঝানো হয়েছে।

উদাহরণ

এটির জন্য কোড হবে −

const obj = {    obj1: [ 0, 10 ],    obj2: [ 3, 9 ],    obj3: [ 5, 12, 14 ] }; const findNearest = (obj = {}) => {    let parts = [undefined, undefined, undefined];    let i;    let res;    const data = Object    .values(obj)    .map((a, i) => a.map(v => [v, i]))    .reduce((a, b) => a.concat(b))    .sort((a, b) => a[0] − b[0] || a[1] − b[1]);    for (i = 0; i < data.length; i++) {       parts[data[i][1]] = data[i][0];       if (parts.some(v => v === undefined)) continue;       if (!res || Math.max(...parts) − Math.min(...parts) <       Math.max(...res) − Math.min(...res)) {          res = parts.slice();       };    };    return res; }; console.log(findNearest(obj));

আউটপুট

কনসোলে আউটপুট হবে −

[ 10, 9, 12 ]

  1. জাভাস্ক্রিপ্টে শর্টেস্ট পাথ অ্যালগরিদম

  2. জাভাস্ক্রিপ্ট - অ্যারে অবজেক্টের length প্রোপার্টি

  3. জাভাস্ক্রিপ্টে অ্যারেতে অবজেক্টগুলির মধ্যজাত একটি মেথড শেয়ার করা যায় কি?

  4. জাভাস্ক্রিপ্টে অবজেক্ট সমতা ব্যাখ্যা