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

জাভাস্ক্রিপ্টে অ্যারে এলিমেন্ট পুনর্বিন্যাস করে ডাবল রিলেশন তৈরি করা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা অ্যারে (arr) নেবে। অ্যারে-র দৈর্ঘ্য সর্বদা জোড় হবে। ফাংশনটি true রিটার্ন করবে যদি এবং কেবল যদি অ্যারে-কে এমনভাবে রি-অর্ডার করা যায় যেন arr[2*i + 1] = 2 * arr[2*i] হয় সব 0 <= i < length(arr)/2 এর জন্য।

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

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. জাভাস্ক্রিপ্ট Array.isArray() মেথড

  2. জাভাস্ক্রিপ্ট array.flatMap() মেথড

  3. জাভাস্ক্রিপ্ট Array.slice() মেথড

  4. জাভাস্ক্রিপ্ট array.values() মেথড