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

জাভাস্ক্রিপ্টে Set-এ এলিমেন্ট রিমুভ করা (Delete)


Set Data Structure: Delete Operation

Delete মেথড সেটে একটি ভ্যালু রিমুভ করে। যদি ভ্যালুটি সেটে থাকে, তবে এটি মুছে ফেলে এবং true রিটার্ন করে। নেইলে false রিটার্ন করে।

Delete মেথড ইমপ্লিমেন্টেশন

class MySet {
  constructor() {
    this.container = {}; // Object as Hash Map
  }

  has(val) {
    return this.container.hasOwnProperty(val);
  }

  // Delete Implementation
  delete(val) {
    if (this.has(val)) {
      delete this.container[val];
      return true;
    }
    return false;
  }

  // Helper
  display() {
    console.log(this.container);
  }
}

টেস্টিং উদাহরণ

const testSet = new MySet();

testSet.add(1);
testSet.add(2);
testSet.add(5);

console.log("Before delete:");
testSet.display(); // { '1': 1, '2': 2, '5': 5 }

testSet.delete(5);  // true
testSet.delete(2);  // true
testSet.delete(99); // false (not exists)

console.log("After delete:");
testSet.display(); // { '1': 1 }

console.log("Has 5:", testSet.has(5));   // false
console.log("Has 20:", testSet.has(20)); // false
console.log("Has 1:", testSet.has(1));   // true

আউটপুট

Before delete:
{ '1': 1, '2': 2, '5': 5 }
After delete:
{ '1': 1 }
Has 5: false
Has 20: false
Has 1: true

ES6 Native Set API

আধুনিক জাভাস্ক্রিপ্টে বিল্ট-ইন Set ক্লাস ব্যবহার করুন:

const nativeSet = new Set([1, 2, 5]);

console.log(nativeSet.delete(5)); // true
console.log(nativeSet.delete(2)); // true
console.log(nativeSet.has(5));    // false
console.log(nativeSet.has(20));   // false
console.log(nativeSet.has(1));    // true

console.log(nativeSet); // Set { 1 }

Delete vs Clear

Operation Method Effect
Single Element Remove delete(val) নির্দিষ্ট ভ্যালু রিমুভ
Remove All clear() সেট সম্পূর্ণ খালি

Time Complexity

  • Custom Object-based: O(1) Average (Hash Lookup) — hasOwnProperty + delete।
  • Native Set: O(1) Average — হ্যাশ টেবিল ইমপ্লিমেন্টেশন।

সারাংশ

  • delete(val) ভ্যালু এক্সিস্ট করলে রিমুভ করে true রিটার্ন করে।
  • নেইলে false রিটার্ন করে (নো এরর)।
  • ES6 Set.prototype.delete একই আচরণ করে।
  • অবজেক্ট কি হিসেবে স্ট্রিং কনভারশন হয় (1 → "1") — অবজেক্ট/অ্যারে কি হিসেবে ব্যবহার করলে রেফারেন্স কমপ্যারিসন হয়।
  1. জাভাস্ক্রিপ্টে PriorityQueue-এ Dequeue (Remove) অপারেশন

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

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

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