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

জাভাস্ক্রিপ্টে অ্যারের মাঝপথের উপাদান(গুলো) খুঁজে বের করা

একটি সংখ্যা অ্যারে দেওয়া আছে। ফাংশনটি অ্যারের মাঝপথের উপাদানটি রিটার্ন করবে। যদি অ্যারের দৈর্ঘ্য জোড় হয়, তবে মাঝপথের দুটি উপাদান রিটার্ন করবে।

উদাহরণ

  • [1, 2, 3, 4, 5, 6, 7] → আউটপুট: [4] (দৈর্ঘ্য ৭, মাঝপথ ইনডেক্স ৩)
  • [1, 2, 3, 4, 5, 6] → আউটপুট: [3, 4] (দৈর্ঘ্য ৬, মাঝপথ ইনডেক্স ২ ও ৩)

উদাহরণ কোড

const arr = [1, 2, 3, 4, 5, 6, 7];

const middle = function() {
  const half = this.length >> 1;        // Math.floor(length / 2)
  const offset = 1 - this.length % 2;   // জোড় দৈর্ঘ্যের জন্য 1, বিজোড়ের জন্য 0
  return this.slice(half - offset, half + 1);
};

Array.prototype.middle = middle;

console.log(arr.middle());        // [4]
console.log([1, 2, 3, 4, 5, 6].middle()); // [3, 4]

আউটপুট

[ 4 ]
[ 3, 4 ]

ব্যাখ্যা

  • this.length >> 1 বিটওয়াইজ রাইট শিফ্ট দিয়ে দৈর্ঘ্যের অর্ধেক (floor) বের করা হয়েছে।
  • offset: দৈর্ঘ্য বিজোড় হলে length % 2 = 1, তাই offset = 0। দৈর্ঘ্য জোড় হলে length % 2 = 0, তাই offset = 1।
  • slice(half - offset, half + 1) দিয়ে সাবঅ্যারে এক্সট্র্যাক্ট করা হয়েছে।
  • প্রোটোটাইপে middle মেথড অ্যাড করা হয়েছে যাতে যেকোনো অ্যারেয়ে .middle() কল করা যায়।

ফাংশনাল সংস্করণ (প্রোটোটাইপ ম্যানিপুলেশন ছাড়া)

const getMiddle = arr => {
  const half = Math.floor(arr.length / 2);
  if (arr.length % 2 === 0) {
    return [arr[half - 1], arr[half]];
  }
  return [arr[half]];
};
  1. জাভাস্ক্রিপ্ট const কীওয়ার্ড

  2. জাভাস্ক্রিপ্টে Const এবং Let এর পার্থক্য

  3. জাভাস্ক্রিপ্টে লিংকড লিস্টের মধ্যম নোড খুঁজে বের করা

  4. জাভাস্ক্রিপ্টে পরবর্তী বড় উপাদানের দূরত্ব খুঁজে বের করা