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

জাভাস্ক্রিপ্টে অ্যারে থেকে নেগেটিভ মান সরানো

একটি অ্যারে দেওয়া আছে যাতে পজিটিভ ও নেগেটিভ উভয় সংখ্যা থাকতে পারে। ফাংশনটি অ্যারেতে থেকে সব নেগেটিভ মান সরিয়ে শুধু পজিটিভ সংখ্যা রাখবে। শর্ত: কোনো টেম্পোরারি অ্যারে তৈরি করা যাবে না, শুধু pop() মেথড ব্যবহার করে উপাদান সরাতে হবে।

উদাহরণ কোড

// শেষ থেকে নেগেটিভ মানগুলো সরিয়ে ফেলুন
while (x.length && x[x.length - 1] < 0) {
  x.pop();
}

for (var i = x.length - 1; i >= 0; i--) {
  if (x[i] < 0) {
    // এই উপাদানকে শেষ উপাদান দিয়ে প্রতিস্থাপন করুন (যেটি নিশ্চিতভাবেই পজিটিভ)
    x[i] = x[x.length - 1];
    x.pop();
  }
}

আউটপুট

[ 1, 8, 9 ]

ব্যাখ্যা

  • প্রথম while লুপটি অ্যারের শেষ থেকে নেগেটিভ মানগুলো pop() দিয়ে সরিয়ে ফেলে।
  • দ্বিতীয় লুপটি পিছন থেকে সামনে চলে। যদি কোনো নেগেটিভ মান পাওয়া যায়, তবে সেটিকে বর্তমান শেষ উপাদান (যেটি পজিটিভ) দিয়ে প্রতিস্থাপন করে pop() করে।
  • এই পদ্ধতিতে অ্যারের সাইজ ছোট হয়ে যায় এবং অর্ডার বদলতে পারে, কিন্তু শুধু পজিটিভ মানগুলো থাকে।
  • সময় জটিলতা: O(n), স্পেস জটিলতা: O(1)।

দ্রষ্টব্য

এই কোড স্নিপেটটি অনুমান করে যে x ভেরিয়েবলটি ইতিমধ্যে ডিফাইন করা আছে। পুরো ফাংশন হিসেবে লিখলে:

function removeNegatives(arr) {
  while (arr.length && arr[arr.length - 1] < 0) {
    arr.pop();
  }
  for (let i = arr.length - 1; i >= 0; i--) {
    if (arr[i] < 0) {
      arr[i] = arr[arr.length - 1];
      arr.pop();
    }
  }
  return arr;
}
  1. JavaScript-এ অ্যারের শেষ থেকে এলিমেন্ট মুছে ফেলা: pop()

  2. জাভাস্ক্রিপ্টে অ্যারে থেকে উপাদান সরানো

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

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