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

জাভাস্ক্রিপ্টে ডিজিট রুট অনুযায়ী নম্বর সর্টিং


ডিজিট রুট

একটি পজেটিভ ইন্টিজারের ডিজিট রুট = এর সব ডিজিটের সমষ্টি।

সর্টিং নিয়ম: a, b এর জন্য → digitRoot(a) ≤ digitRoot(b)। সমান হলে ছোট নম্বর আগে।

উদাহরণ: 4 এবং 13 → ডিজিট রুট ৪। 4 < 13, তাই 4 আগে।

ইনপুট: [13, 20, 7, 4] → আউটপুট: [20, 4, 13, 7] (ডিজিট রুট: 2, 4, 4, 7)

সমাধান

const arr = [13, 20, 7, 4];

const digitSum = (num, sum = 0) => {
  if (num) {
    return digitSum(Math.floor(num / 10), sum + (num % 10));
  }
  return sum;
};

const digitalSort = (arr = []) => {
  const sorter = (a, b) => {
    return (digitSum(a) - digitSum(b)) || (a - b);
  };
  arr.sort(sorter);
};

digitalSort(arr);
console.log(arr);

আউটপুট

[ 20, 4, 13, 7 ]

ব্যাখ্যা

  • digitSum: রিকার্সিভ ফাংশন দিয়ে ডিজিট সমষ্টি বের করা।
  • sorter: প্রথমে ডিজিট রুট পার্থক্য, তারপর নম্বরের নিজস্ব পার্থক্য।
  • || অপারেটর: প্রথম এক্সপ্রেশন ০ (সমান) হলে দ্বিতীয়টি ইভ্যালুয়েট হয়।
  1. জাভাস্ক্রিপ্টে একটি নম্বরের nth রুট ক্যালকুলেট করার পদ্ধতি

  2. জাভাস্ক্রিপ্ট অ্যারেতে শেষে এলিমেন্ট যোগ করার পদ্ধতি?

  3. জাভাস্ক্রিপ্টে ২-এর বর্গমূল বের করার উপায়

  4. জাভাস্ক্রিপ্ট Numbers উদাহরণ