কম্পিউটার

জাভাস্ক্রিপ্টে একটি অ্যারের উপাদান পুনর্বিন্যাস করা


সমস্যা

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

অ্যারে অ্যারে, সবসময় সমান দৈর্ঘ্যের হবে।

আমাদের ফাংশনটি সত্য হওয়া উচিত যদি এবং শুধুমাত্র যদি এটিকে পুনরায় সাজানো সম্ভব হয় যাতে arr[2 * i + 1] =2 * arr[2 * i] প্রতি 0 <=i

উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −

const arr = [4, -2, 2, -4];

তারপর আউটপুট −

হওয়া উচিত
const output = true;

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

আমরা দুটি দল নিয়ে যেতে পারি, [-2,-4] এবং [2,4] গঠন করতে [-2,-4,2,4] বা [2,4,-2,-4]।

উদাহরণ

এর জন্য কোড হবে −

const arr = [4, -2, 2, -4];
const canRearrange = (arr = []) => {
   const map = arr.reduce((acc, num) => {
      acc[num] = (acc[num] || 0) + 1
      return acc
   }, {});
   const keys = Object.keys(map)
   .map(key => Number(key))
   .sort((a, b) => a - b)
   for (const key of keys) {
      if (key < 0) {
         while (map[key] > 0) {
            if (map[key / 2] > 0) {
               map[key] -= 1
               map[key / 2] -= 1
            } else {
               return false
            }
         }
      } else {
         while (map[key] > 0) {
            if (map[key * 2] > 0) {
               map[key] -= 1
               map[key * 2] -= 1
            } else {
               return false
            }
         }
      }
   }
   return true
};
console.log(canRearrange(arr));

আউটপুট

এবং কনসোলে আউটপুট হবে −

true

  1. JavaScript Array.isArray()

  2. JavaScript array.flatMap()

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

  4. JavaScript array.values()