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

অবজেক্টে সংখ্যাগুলো নর্মালাইজ করা - জাভাস্ক্রিপ্ট

ধরা যাক, আমাদের কাছে নিচের মতো স্ট্রিং-টু-নাম্বার ম্যাপ করা একটি অবজেক্ট রয়েছে:

const obj = {
  num1: 45,
  num2: 78,
  num3: 234,
  num4: 3,
  num5: 79,
  num6: 23
};

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে এমন একটি অবজেক্ট এবং দ্বিতীয় আর্গুমেন্ট হিসেবে কেবল দুটি সংখ্যার একটি অ্যারে নেবে।

দ্বিতীয় আর্গুমেন্ট মূলত একটি রেঞ্জ নির্দেশ করে:

[a, b] (b >= a)

আমাদের কাজ হল অবজেক্টের মানগুলো রেঞ্জ অনুযায়ী নর্মালাইজ করা।

অর্থাৎ, অবজেক্টের সর্বোচ্চ মান হবে b এবং সর্বনিম্ন মান হবে a। এবং মাঝপথে থাকা মানগুলো অনুপাতিকভাবে অjusted হবে।

উদাহরণ

নিচের কোডটি দেখুন:

const obj = {
  num1: 45,
  num2: 78,
  num3: 234,
  num4: 3,
  num5: 79,
  num6: 23
};

const range = [10, 15];

const normaliseObject = (obj, range) => {
  const values = Object.values(obj);
  const min = Math.min.apply(Math, values);
  const max = Math.max.apply(Math, values);
  const variation = (range[1] - range[0]) / (max - min);
  Object.keys(obj).forEach(el => {
    const val = (range[0] + ((obj[el] - min) * variation)).toFixed(2);
    obj[el] = +val;
  });
};

normaliseObject(obj, range);
console.log(obj);

আউটপুট

এটি কনসোলে নিচের আউটপুট তৈরি করবে:

{
  num1: 10.91,
  num2: 11.62,
  num3: 15,
  num4: 10,
  num5: 11.65,
  num6: 10.43
}
  1. জাভাস্ক্রিপ্টে Map অবজেক্ট

  2. জাভাস্ক্রিপ্টে Blob অবজেক্ট

  3. জাভাস্ক্রিপ্টে RegExp অবজেক্ট

  4. জাভাস্ক্রিপ্টে অবজেক্ট ইলিশিয়ালাইজার