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

জাভাস্ক্রিপ্টে সাইটেশন ডেটা থেকে h-ইন্ডেক্স ক্যালকুলেট করা


ধরুন, আমাদের কাছে পজিটিভ ইন্টিজারগুলোর একটি অ্যারে আছে যা একটি গবেষকের সময়ের সাথে সাথে কতগুলো সাইটেশন করেছে সেটি রিপ্রেজেন্ট করে।

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অ্যারে নেবে এবং ফাংশনটি সেটি সাইটেশন ডেটার ভিত্তিকে সেই গবেষকের h-ইন্ডেক্স বের করবে।

H-ইন্ডেক্স:

একজন গবেষক যিনি তার ক্যারিয়ার에 N সংখ্যক সাইটেশন করেছেন। তাহলে গবেষকটির h-ইন্ডেক্স হবে h যদি তার Nটি পেপারের মধ্যে h-টিতে কমপক্ষে h সংখ্যক সাইটেশন থাকে, এবং বাকি N - h টি পেপারে h-র চেয়ে কম বা সমান সাইটেশন থাকে।

উদাহরণস্বরূপ:

যদি সাইটেশন অ্যারে হয়:

const arr = [1, 6, 3, 0, 5];

এই ডেটা রিপ্রেজেন্ট করে যে গবেষকটির মোট ৫টি পেপার আছে এবং সেগুলোতে যথাক্রমে ১, ৬, ৩, ০, ৫ সাইটেশন পাওয়া গেছে।

এবং যেহেতু গবেষকটির ৩টি পেপারে কমপক্ষে ৩টি সাইটেশন আছে এবং বাকি দুটিতে ৩-এর চেয়ে কম বা সমান সাইটেশন আছে, তাই h-ইন্ডেক্স হলো ৩।

তাই, এই অ্যারেতে আউটপুট হবে:

const output = 3;

উদাহরণ

নিচে কোডটি দেওয়া হলো:

const arr = [1, 6, 3, 0, 5]; const findHIndex = (arr = []) => {    let possible = [];    let { length: len } = arr;    if (len === 0){       return 0;    };    possible.length = len + 2;    possible = possible.join('-').split('').map(() => 0);    for (let i = 0; i < len; i ++) {       let val = arr[i];       let ind = val > len ? len : val;       possible[ind] += 1;    }    let result = 0;    for (let k = len; k >= 0; k --) {       result += possible[k];       if (result >= k) {          return k;       }    } }; console.log(findHIndex(arr));

আউটপুট

কনসোল আউটপুট:

3

  1. জাভাস্ক্রিপ্ট Array.findIndex() ফাংশন

  2. জাভাস্ক্রিপ্টে অ্যারেতে মেডিয়ান গণনা

  3. জাভাস্ক্রিপ্টে অ্যারেতে গড় (Average) গণনা

  4. জাভাস্ক্রিপ্টে পূর্ণসংখ্যাকে সঠিক সূচকে রাখা