JavaScript অবিচ্ছিন্ন বস্তু

প্রত্যাহার্য অবজেক্ট হলো যারা পরিবর্তন করা যায় (যেমন আইসিডের)。

প্রত্যাহার্য অবজেক্টকে সহজ এবং দ্রুত প্রত্যাহার্য কোড দ্বারা পরিবর্তন করা যায়。

প্রত্যাহার্য অবজেক্টকে for..of লুপ ইতার করে

for..of লুপ

for..of বিন্যাস ব্যবহার করা হয় যাতে প্রত্যাহার্য অবজেক্টের এলিমেন্টগুলির পার্শ্বপরিবর্তন সমীক্ষা করা যায়。

গঠনশৈলী

for (বিষয় of iterable) {
  // কর্মকাণ্ড যা করা হবে
}

ইতার

ইতারের বোঝা অত্যন্ত সহজ。

এটা শুধুমাত্র একসুত্রের এলিমেন্টগুলির পার্শ্বপরিবর্তন সমীক্ষা করার মানেই。

নিচে কিছু সহজ উদাহরণ দেওয়া হল:

  • একটি স্ট্রিং-এর পার্শ্বপরিবর্তন সমীক্ষা করুন
  • একটি আইসিডের পার্শ্বপরিবর্তন সমীক্ষা করুন

একটি স্ট্রিং-এর পার্শ্বপরিবর্তন সমীক্ষা করুন

পরিচিত ডাটা সংকেতকরণ করা যায় ঘুর্ণায়মান করা যায় for..of একটি স্ট্রিং-এর এলিমেন্টগুলির পার্শ্বপরিবর্তন সমীক্ষা করুন:

ইনস্ট্যান্স

const name = "W3Schools";
for (const x of name) {
  // কর্মকাণ্ড যা করা হবে
}

আপনার হাতে চেষ্টা করুন

একটি আইসিডের পার্শ্বপরিবর্তন সমীক্ষা করুন

পরিচিত ডাটা সংকেতকরণ করা যায় ঘুর্ণায়মান করা যায় for..of একটি আইসিডের এলিমেন্টগুলির পার্শ্বপরিবর্তন সমীক্ষা করুন:

উদাহরণ 1

const letters = ["a","b","c"];
const letters = new Set(["a","b","c"]);
  // কর্মকাণ্ড যা করা হবে
}

আপনার হাতে চেষ্টা করুন

উদাহরণ 2

const numbers = [2,4,6,8];
for (const x of numbers) {
  // কর্মকাণ্ড যা করা হবে
}

আপনার হাতে চেষ্টা করুন

Set-এর পার্শ্বপরিবর্তন সমীক্ষা করুন

পরিচিত ডাটা সংকেতকরণ করা যায় ঘুর্ণায়মান করা যায় for..of Set-এর এলিমেন্টগুলির পার্শ্বপরিবর্তন সমীক্ষা করুন:

ইনস্ট্যান্স


const letters = new Set(["a","b","c"]);
  // কর্মকাণ্ড যা করা হবে
}

আপনার হাতে চেষ্টা করুন

for (const x of letters) {প্রত্যহরণ:

আমরা পরবর্তীতে সেট এবং Map-কে বিস্তারিতভাবে বর্ণনা করবো

পরিচিত ডাটা সংকেতকরণ করা যায় ঘুর্ণায়মান করা যায় for..of পরিচিত ডাটা সংকেতকরণ করা যায় তৈরি এলিমেন্টস পার্শ্ববর্তী প্রতিবেশীতে ঘুর্ণায়মান করা যায়:

ইনস্ট্যান্স

const fruits = new Map([
  ["আপল", 500],
  ["ব্যানানা", 300],
  
]
for (const x of fruits) {
  // কর্মকাণ্ড যা করা হবে
}

আপনার হাতে চেষ্টা করুন

জেভাস্ক্রিপ্ট ইটারেটর

ইটারেটর প্রোটোকল পরিচিত ডাটা সংকেতকরণ করা যায় থেকে কিভাবে উৎপন্ন করা হয়একটি কার্যকর সিরিজ মূল্য

যখন একটি অবজেক্ট next() পদ্ধতি কর্মকাণ্ড করে, তবে এটা হয়ইটারেটর

next() পদ্ধতি একটি দুটি অবজেক্ট অধীনে রয়েছে, যা প্রদান করে:

  • value (পরবর্তী মূল্য)
  • done (true বা false)
value

ইটারেটর প্রদান করে মূল্য

যদি done true হয়, তবে তা ছেড়ে যাওয়া যায়

done

যদি ইটারেটর সমাপ্ত হয়, তবে এটা true

যদি ইটারেটর একটি নতুন মূল্য উৎপন্ন করে, তবে এটা false

প্রত্যহরণ:

প্রযুক্তিগতভাবে, পরিচিত ডাটা সংকেতকরণ করা যায়কে নিশ্চিত করতে হবে যে তা Symbol.iterator পদ্ধতি কার্যকর করে

স্ট্রিং, এক্সেকিউটিভ, TypedArray, Map এবং Set পরিচিত ডাটা সংকেতকরণ করা যায়, কারণ তাদের প্রমাণ্য অবজেক্টটির প্রতিটি হল একটি Symbol.iterator পদ্ধতি

পরিচিত ডাটা সংকেতকরণ করা যায়

একটি পরিচিত ডাটা সংকেতকরণ করা যায় প্রদর্শন করা হলো, যা কখনো থেকেই শেষ না হয়, প্রত্যেকবার ক্রিয়াকরণ next() সবসময় 10, 20, 30, 40, ... প্রদান করবে:

ইনস্ট্যান্স

// পরিচিত ডাটা সংকেতকরণ করা যায় তৈরি করা
function myNumbers() {
  let n = 0;
  return {
    next: function() {
      n += 10;
      return { value: n, done: false };
    }
  };
}
// পরিচিত ডাটা সংকেতকরণ করা যায় তৈরি করা
const n = myNumbers();
n.next(); // 10 প্রদান করে
n.next(); // 20 প্রদান করে
n.next(); // 30 প্রদান করে

আপনার হাতে চেষ্টা করুন

প্রশ্ন:

কোনও পরিচিত ডাটা সংকেতকরণ করা যায় for..of বিন্যাস

যারা for..of বিন্যাসকে সমর্থন করে

জেভাস্ক্রিপ্ট একটি পরিচিত ডাটা সংকেতকরণ করা যায় Symbol.iterator একটি অবজেক্ট

Symbol.iterator একটি যা প্রদান করে next() একটি ফাংশন

যাতে কোনও পরিচিত ডাটা সংকেতকরণ করা যায়:

for (const x of iterable});

ইনস্ট্যান্স

// একটি অবজেক্ট তৈরি করুন
myNumbers = {};
// এটা ইটারেবল করুন
myNumbers[Symbol.iterator] = function() {
  let n = 0;
  done = false;
  return {
    next() {
      n += 10;
      if (n == 100) { done = true; }
      return { value: n, done: done };
    }
  };
};
// এখন আমরা for..of ব্যবহার করতে পারি
for (const num of myNumbers) {
  // কোনও কোড
}

আপনার হাতে চেষ্টা করুন

Symbol.iterator মথুরা হবে for..of স্বচালিত আহরণ

কিন্তু আমরা হাতেই এটা আহরণ করতে পারি:

ইনস্ট্যান্স

let iterator = myNumbers[Symbol.iterator]();
while (true) {
  const result = iterator.next();
  if (result.done) break;
  // কোনও কোড
}

আপনার হাতে চেষ্টা করুন