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

জাভাস্ক্রিপ্টে Set-এ এলিমেন্ট যোগ করা (Add)


Set Data Structure: Add Operation

Add মেথড সেটে একটি নতুন ভ্যালু যোগ করে। সেটের বৈশিষ্ট্য: ডুপ্লিকেট না থাকবে। যদি ভ্যালুটি ইতিমধ্যে থাকে, তবে যোগ হবে না এবং false রিটার্ন করবে।

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

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

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

  // Add Implementation
  add(val) {
    if (!this.has(val)) {
      this.container[val] = val; // Key = Value (for Set semantics)
      return true;
    }
    return false; // Duplicate - not added
  }

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

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

const testSet = new MySet();

testSet.add(1);   // true
testSet.add(2);   // true
testSet.add(5);   // true
testSet.add(2);   // false (Duplicate!)

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

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

আউটপুট

Set Contents:
{ '1': 1, '2': 2, '5': 5 }
Has 5: true
Has 20: false
Has 1: true

নোট: ২ বার add(2) কল করলে দ্বিতীয়বার false রিটার্ন করে এবং সেটে শুধু একবার থাকে।

ES6 Native Set API

const nativeSet = new Set();

nativeSet.add(1);
nativeSet.add(2);
nativeSet.add(5);
nativeSet.add(2); // Duplicate - ignored

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

console.log(nativeSet); // Set { 1, 2, 5 }
console.log(nativeSet.size); // 3

Set Add Characteristics

বৈশিষ্ট্য বर्णনা
Uniqueness ডুপ্লিকেট অ্যালাও নয় (Set Semantics)
Order Insertion Order Preserved (ES6 Set)
Key Types Primitive + Object Reference
Return Value Set Object (Chaining Possible: set.add(1).add(2))

Custom Set vs Native Set: Add Behavior

// Custom MySet - Returns Boolean
mySet.add(1); // true
mySet.add(1); // false

// Native ES6 Set - Returns Set Object (Chainable)
nativeSet.add(1); // Set { 1 }
nativeSet.add(1); // Set { 1 } (Same object returned)

Use Cases

  • ইউনিক ভ্যালু কালেকশন (ট্যাগ, ক্যাটেগরি, আইডি)۔
  • ডুপ্লিকেট রিমুভ করা: [...new Set(array)]।
  • মেম্বারশিপ টেস্ট (O(1) Lookup)।
  • ম্যাথমেটিক্যাল সেট অপারেশন (Union, Intersection, Difference)。——
  1. জাভাস্ক্রিপ্টে কিউ (Queue-এ) এলিমেন্ট যোগ করা (Enqueue)

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

  3. জাভাস্ক্রিপ্টে লিংকড লিস্টে এলিমেন্ট যোগ করা (Insert)

  4. জাভাস্ক্রিপ্টে অ্যারে vs সেট