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

জাভাস্ক্রিপ্টে অঙ্কের যোগফল অনুযায়ী সংখ্যা সর্ট করা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি ধনাত্মক পূর্ণসংখ্যার অ্যারে arr প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে নেবে।

ফাংশনটি ইনপুট অ্যারেটিকে এমনভাবে সর্ট করবে যাতে যেই সংখ্যার অঙ্কের যোগফল সর্বোচ্চ সেটি সবার আগে আসবে, তারপর কম যোগফল वाले সংখ্যাগুলো।

উদাহরণস্বরূপ, যদি ইনপুট হয় –

ইনপুট

const arr = [5, 34, 1, 13, 76, 8, 78, 101, 57, 565];

আউটপুট

const output = [565, 78, 76, 57, 8, 34, 5, 13, 101, 1];

আউটপুট ব্যাখ্যা

কারণ 565-এর অঙ্কের যোগফল ১৬ যা সর্বোচ্চ, তারপর 78 এবং 76, এবং 101 ও ১-এর যোগফল যথাক্রমে ২ ও ১ যা ন্যূনতম।

উদাহরণ

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

const arr = [5, 34, 1, 13, 76, 8, 78, 101, 57, 565]; 
const addDigits = (num, sum = 0) => { 
  if (num) { 
    return addDigits(Math.floor(num / 10), sum + (num % 10)); 
  } 
  return sum; 
}; 
const sortByDigitSum = (arr = []) => { 
  arr.sort((a, b) => { 
    return addDigits(b) - addDigits(a); 
  }); 
  return arr; 
}; 
sortByDigitSum(arr); 
console.log(arr);

আউটপুট

[565, 78, 76, 57, 8, 34, 5, 13, 101, 1]

  1. জাভাস্ক্রিপ্টে সুপার আয় rosto সংখ্যা (Super Ugly Numbers)

  2. জাভাস্ক্রিপ্টে অ্যারেতে থেকে nটি সবচেয়ে ছোট সংখ্যা তাদের মূল ক্রমে বের করা

  3. জাভাস্ক্রিপ্টে অ্যারে সূচক যেখানে বাম ও ডান পাশের যোগফল সমান

  4. জাভাস্ক্রিপ্টে এলিমেন্টের ফ্রিকোয়েন্সি অনুযায়ী অ্যারে সাজানো