কম্পিউটার

জাভাস্ক্রিপ্ট অ্যারেতে অনুপস্থিত সাংখ্যিক মানগুলি পূরণ করুন


আমাদের n এন্ট্রিগুলির একটি অ্যারে দেওয়া হয়েছে, যার মধ্যে শুধুমাত্র 2টি সংখ্যা, অন্য সমস্ত এন্ট্রি শূন্য। এরকম কিছু -

const arr = [null, null, -1, null, null, null, -3, null, null, null];

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

পাটিগণিতের অগ্রগতি সম্পর্কে

সংখ্যার একটি সিরিজ/অ্যারে একটি গাণিতিক অগ্রগতি গঠন করে বলে বলা হয় যদি অ্যারের থেকে কোন নির্বিচারে সংখ্যা n-এর (n-1) তম সংখ্যার সাথে একটি ধ্রুবক d যোগ করে গঠিত হয়।

উদাহরণ -

1, 2, 3, 4, 5, 6, 7, 8

এখানে, প্রতিটি পরবর্তী সংখ্যা পূর্ববর্তী সংখ্যার সাথে একটি ধ্রুবক (এই ক্ষেত্রে 1) যোগ করে প্রাপ্ত হয়।

অন্যান্য উদাহরণ -

1, 1, 1, 1, 1, 1, 1, 1, 1
10, 8, 6, 4, 2, 0, -2

এই ধরনের সিরিজের প্রথম উপাদানটি প্রচলিতভাবে a দ্বারা চিহ্নিত করা হয় এবং ধ্রুবক অগ্রগতি প্রতিটি সংখ্যা, সাধারণ পার্থক্য, d দ্বারা চিহ্নিত করা হয়৷

অতএব, যদি আমরা এই ধরনের যেকোন সিরিজের nম উপাদানটিকে Tn দ্বারা বোঝাই, তাহলে,

Tn = a + (n -1)d

যেখানে, n হল সেই সংখ্যার 1 ভিত্তিক সূচক।

এই বিষয়গুলি পরিষ্কার করে, আসুন আমরা এইমাত্র বর্ণিত সমস্যার জন্য কোড লিখি। আমরা প্রথমে অ্যারের জন্য প্রথম উপাদান (a) এবং সাধারণ পার্থক্য (d) খুঁজে বের করার চেষ্টা করব। একবার আমাদের কাছে সেগুলি হয়ে গেলে, আমরা সিরিজ তৈরি করতে মূল অ্যারের উপর একটি লুপ চালাব৷

উদাহরণ

const arr = [null, null, -1, null, null, null, -3, null, null, null];
const arr2 = [null, null, -1, null, null, null, 12, null, null, null,
null, null, null];
const constructSeries = (arr) => {
   const map = {
      first: undefined,
      last: undefined
   };
   arr.forEach((el, ind) => {
      if(el !== null){
         if(map['first']){
            map['last'] = [el, ind];
         }else{
            map['first'] = [el, ind];
         }
      };
   });
   const { first, last } = map;
   const commonDifference = (last[0] - first[0])/(last[1] - first[1]);
   const firstElement = (first[0]) - ((first[1])*commonDifference);
   return arr.map((item, index) => {
      return firstElement + (index * commonDifference);
   });
};
console.log(constructSeries(arr));
console.log(constructSeries(arr2));

আউটপুট

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

[
   0, -0.5, -1, -1.5,
   -2, -2.5, -3, -3.5,
   -4, -4.5
]
[
   -7.5, -4.25, -1,
   2.25, 5.5, 8.75,
   12, 15.25, 18.5,
   21.75, 25, 28.25,
   31.5
]

  1. জাভাস্ক্রিপ্ট অ্যারে ফিল() ফাংশন

  2. JavaScript Array.prototype.values()

  3. JavaScript array.values()

  4. জাভাস্ক্রিপ্টে নাল/খালি অবজেক্ট সহ একটি অ্যারেতে মান কীভাবে বরাদ্দ করবেন?