কম্পিউটার

জাভাস্ক্রিপ্ট অ্যারে র‍্যাঙ্কিং - জাভাস্ক্রিপ্ট


ধরুন, আমাদের কাছে তিনটি জাভাস্ক্রিপ্ট অ্যারে আছে এই রকম −

const array1 = [10,23,53,74,33,56,6,0,43,45,11];
const array2 = [52,46,27,28,4,11,53,6,75,75,22];
const array3 = [26,18,10,12,31,12,5,8,44,34,65];

সব অ্যারের দৈর্ঘ্য সবসময় একই হবে।

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এই ধরনের যেকোন সংখ্যক অ্যারেতে বিদ্যমান অ্যারের সংশ্লিষ্ট উপাদানগুলিকে তাদের র্যাঙ্ক অনুযায়ী ম্যাপ করে (অর্থাৎ, তাদের ক্রমহ্রাসমান অর্থে)।

অতএব, উপরের অ্যারেগুলির জন্য, আউটপুটটি −

এর মতো হওয়া উচিত
const array1= [3,2,1,1,1,1,2,3,2,2,3];
const array2= [1,1,2,2,2,2,1,2,1,1,2];
const array3= [2,3,3,3,3,3,3,1,2,3,1];

উদাহরণ

নিম্নলিখিত কোড -

const array1 = [10,23,53,74,33,56,6,0,43,45,11];
const array2 = [52,46,27,28,4,11,53,6,75,75,22];
const array3 = [26,18,10,12,31,12,5,8,44,34,65];
const transpose = (rank, arr) => {
   return arr.map((el, ind) => {
      return [...(rank[ind] || []), el];
   });
};
const ranks = arr => {
   return arr.map(
      Map.prototype.get,
      [...arr]
      .sort((a, b) => b - a)
      .reduce((r => (m, v) => m.set(v, (r++, m.get(v)) || r))(0), new Map)
   );
};
const findRanks = (...arrs) => {
   return arrs
   .reduce(transpose, [])
   .map(ranks)
   .reduce(transpose, []);
};
console.log(findRanks(array1, array2, array3));

আউটপুট

এটি কনসোলে নিম্নলিখিত আউটপুট তৈরি করবে -

[
 [
   3, 2, 1, 1, 1,
   1, 2, 3, 3, 2,
   3
 ],
 [
   1, 1, 2, 2, 3,
   3, 1, 2, 1, 1,
   2
 ],
 [
   2, 3, 3, 3, 2,
   2, 3, 1, 2, 3,
   1
 ]
]

  1. জাভাস্ক্রিপ্টে অ্যারে স্লাইস()

  2. জাভাস্ক্রিপ্টে অ্যারে শিফট()

  3. জাভাস্ক্রিপ্টে অ্যারে রিভার্স()

  4. জাভাস্ক্রিপ্টে অ্যারে ডি-স্ট্রাকচারিং।