মনে করুন আমাদের নিচের মত তিনটি জাভাস্ক্রিপ্ট সংখ্যার অ্যারে আছে −
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 ] ]