একটি সংখ্যার ওয়েট হল সেই সংখ্যার ডিজিটগুলোর যোগফল। উদাহরণস্বরূপ −
১০০-এর ওয়েট ১ ২২-এর ওয়েট ৪ ৯৯-এর ওয়েট ১৮ ১২৩-এর ওয়েট ৬
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা সংখ্যার একটি অ্যারে নেয়। ফাংশনটি সংখ্যাগুলো তাদের ওয়েটের ক্রমবর্ধমান ক্রমে সর্ট করবে, এবং যদি দুটি সংখ্যার ওয়েট সমান হয়, তবে সেগুলো তাদের প্রকৃত ক্রমবর্ধমান ক্রমে থাকবে।
উদাহরণস্বরূপ −
৫০ এবং ২৩-এর ওয়েট সমান, তাই ২৩, ৫০-এর আগে থাকবে প্রকৃত ক্রমবর্ধমান ক্রম বজায় রাখতে (শুধু সমান ওয়েটের কেসে)
উদাহরণ
এটির জন্য কোড হবে −
const arr = [2, 1, 100, 56, 78, 3, 66, 99, 200, 46]; const calculateWeight = (num, sum = 0) => { if(num){ return calculateWeight(Math.floor(num / 10), sum + (num % 10)); }; return sum; }; const sorter = (a, b) => { return calculateWeight(a) − calculateWeight(b) || a − b; } arr.sort(sorter); console.log(arr);আউটপুট
কনসোলে আউটপুট হবে −
[ 1, 100, 2, 200, 3, 46, 56, 66, 78, 99 ]