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

JavaScript-এ includes() এবং splice() ব্যবহার করে অ্যারে থেকে এলিমেন্ট রিমুভ করা

JavaScript-এ includes() দিয়ে এলিমেন্ট আছে কিনা চেক করে, splice() দিয়ে সেটি রিমুভ করা যায়। এটি অ্যারে ম্যানিপুলেশনের একটি সাধারণ প্যাটার্ন।

ফাংশন উদাহরণ

function removeElements(array, ...valuesToRemove) {
    const toRemove = Array.from(valuesToRemove);
    
    for (let i = 0; i < array.length; i++) {
        if (toRemove.includes(array[i])) {
            array.splice(i, 1); // ১ টি এলিমেন্ট রিমুভ
            i--; // ইনডেক্স ঠিক রাখতে ডিক্রিমেন্ট
        }
    }
    return array;
}

// ব্যবহার
console.log(removeElements([80, 90, 56, 34, 79], 90, 34, 79));

চলানোর পদ্ধতি

  1. কোডটি removeDemo.js নামে সংরক্ষণ করুন।
  2. টার্মিনালে চালান: node removeDemo.js

আউটপুট

[ 80, 56 ]

আধুনিক ও কনসাইজ পদ্ধতি (ES6+)

// ফাংশনাল পদ্ধতি (মূল অ্যারে অপরিবর্তিত)
const removeElements = (array, ...values) => 
    array.filter(item => !values.includes(item));

console.log(removeElements([80, 90, 56, 34, 79], 90, 34, 79));
// [ 80, 56 ]

// অথবা Set ব্যবহার (দ্রুত লুকআপ)
const removeWithSet = (array, ...values) => {
    const removeSet = new Set(values);
    return array.filter(item => !removeSet.has(item));
};

সplice() vs filter() তুলনা

পদ্ধতিমিউটেশনপারফরম্যান্সব্যবহার
splice (লুপে)হ্যাঁ (মূল বদলে)O(n×m)ইন-প্লেস রিমুভ
filter()না (নতুন অ্যারে)O(n+m)ফাংশনাল, সেফ
Set + filterনাO(n+m) সেরাবড় ডেটায় সেরা

সতর্কতা

  • লুপে splice করলে ইনডেক্স শিফট হয়, তাই i-- দরকার।
  • filter() নতুন অ্যারে রিটার্ন করে, মূল অ্যারে অপরিবর্তিত থাকে।
  • বড় অ্যারে ও অনেক রিমুভের জন্য Set ভিত্তিক পদ্ধতি দ্রুত।
  1. জাভাস্ক্রিপ্টে কিউ (Queue) থেকে ডিকিউ (Dequeue) অপারেশন

  2. জাভাস্ক্রিপ্টে PriorityQueue-এ Dequeue (Remove) অপারেশন

  3. জাভাস্ক্রিপ্টে লিংকড লিস্ট থেকে এলিমেন্ট রিমুভ করা

  4. জাভাস্ক্রিপ্টে splice() মেথড ব্যবহার করে এলিমেন্ট রিমুভ করার পদ্ধতি