JavaScript Iterators

জাভাস্ক্রিপ্ট রিটার্ন শিখুন

The Iterator Object

একটি লুপ হল একটি বস্তু যা একটি ক্রমানুসারে উপাদানগুলি অ্যাক্সেস করার একটি আদর্শ উপায় প্রদান করে।

একটি কলব্যাক অবশ্যই একটি কলব্যাক প্রোটোকল অনুসরণ করবে: এটির একটি পরবর্তী() পদ্ধতি থাকতে হবে।

The next() Method

পরবর্তী() পদ্ধতি দুটি বৈশিষ্ট্য সহ একটি বস্তু ফেরত দেয়:

valueএট্রিবিউটে রিটার্ন সিকোয়েন্সের পরবর্তী মান রয়েছে।
doneসম্পত্তিটি মিথ্যা ফেরত দেয় যদি এখনও উপাদানগুলি ফেরত দিতে হয়, অন্যথায় সত্য।

The For Of Loop

স্টেটমেন্টের জন্য জাভাস্ক্রিপ্ট একটি পুনরাবৃত্তিযোগ্য বস্তুর উপাদানগুলির মধ্য দিয়ে লুপ করে।

Syntax

জন্য (পুনরাবৃত্তের পরিবর্তনশীল) { // চালানোর জন্য কোড ব্লক করুন }

💡প্রযুক্তিগত নোট:

প্রযুক্তিগতভাবে, iterables এর Symbol.iterator পদ্ধতি প্রয়োগ করা উচিত।

জাভাস্ক্রিপ্টে বিপরীত করা যায়

নিম্নলিখিতগুলি জাভাস্ক্রিপ্টে পুনরাবৃত্তিমূলক:

স্ট্রিংস

Strings

সারি

Arrays

সমতল সারি

Typed Arrays

Sets

Sets

Maps

Maps

কারণ: তাদের উদাহরণ বস্তুর Symbol.iterator পদ্ধতি আছে।

প্রতিক্রিয়ার সুবিধা

রিকারসিভগুলি ডেটা অ্যারেগুলির সাথে কাজ করার একটি নিয়ন্ত্রিত উপায় প্রদান করে, বিভিন্ন ডেটা স্ট্রাকচারের জন্য কাস্টম পুনরাবৃত্ত যুক্তি সক্ষম করে৷

তারা বিশেষভাবে দরকারী:

ডেটা প্রবাহ পরিচালনা করা
মান অলস গণনা
সংজ্ঞায়িত রিটার্ন আচরণ সহ কাস্টম ডেটা কাঠামো তৈরি করা

অক্জিলিয়ারী ফাংশন

JavaScript 2025 (ECMAScript 2025) আনুষ্ঠানিকভাবে নতুন প্রতিক্রিয়া সহায়ক পদ্ধতির একটি সেটকে স্বীকৃতি দিয়েছে যা জাভাস্ক্রিপ্টে প্রতিক্রিয়ার কার্যকারিতা উল্লেখযোগ্যভাবে উন্নত করে।

এই পদ্ধতিগুলি প্রথমে অ্যারেতে রূপান্তর না করে সরাসরি ম্যানিপুলেশন এবং রূপান্তর করার অনুমতি দিয়ে পুনরাবৃত্তিমূলক বস্তু এবং জেনারেটরগুলির সাথে কাজ করার আরও কার্যকরী এবং কার্যকর উপায় প্রদান করে:

ফাংশন ব্যাখ্যা
drop() একটি রিটার্ন প্রদান করে যা একটি নির্দিষ্ট সংখ্যক উপাদান এড়িয়ে যায় এবং বাকিগুলি ফেরত দেয়
every() সমস্ত উপাদান একটি পরীক্ষা ফাংশন সন্তুষ্ট হলে সত্য প্রদান করে
filter() একটি ফিল্টার ফাংশনকে সন্তুষ্ট করে এমন উপাদান ধারণকারী একটি রিটার্ন প্রদান করে
find() একটি পরীক্ষার ফাংশনকে সন্তুষ্ট করে এমন প্রথম উপাদানটি প্রদান করে
flatMap() প্রতিটি উপাদানের ম্যাপিং এবং তারপর ফলাফলগুলিকে একক রিটার্নে যোগ করা একটি নতুন রিটার্ন প্রদান করে।
forEach() একটি পদ্ধতি লুপের প্রতিটি উপাদানের জন্য একবার একটি ফাংশন সম্পাদন করে
from() একটি স্থিতিস্থাপক থেকে একটি স্থিতিস্থাপক বস্তু তৈরি করে
map() একটি মানচিত্র অপারেশন দ্বারা পরিবর্তিত সমস্ত উপাদান ধারণকারী একটি রিটার্ন প্রদান করে
reduce() একটি একক মান কমাতে প্রতিটি উপাদানের বিরুদ্ধে একটি সঞ্চয়কারী এবং একটি হ্রাসকারী ফাংশন ব্যবহার করে
some() অন্তত একটি উপাদান একটি পরীক্ষা ফাংশন সন্তুষ্ট হলে সত্য প্রদান করে
take() একটি রিটার্ন প্রদান করে যা একটি নির্দিষ্ট সংখ্যক উপাদান প্রদান করে

The Iterator.from() Method

Iterator.from()পদ্ধতিটি একটি বিদ্যমান রিকার্সিভ বা রিকার্সিভ অবজেক্ট থেকে রিকারসিভ অবজেক্ট তৈরি করে।

Example

// একটি রিটার্ন তৈরি করুন const myIterator = Iterator.from([1, 2, 3]); // উপাদানগুলির উপর পুনরাবৃত্তি করুন let text = ""; জন্য (myIterator এর const x) { পাঠ্য += x; }

The drop() Method

drop()পদ্ধতিটি নির্দিষ্ট সংখ্যক উপাদানকে এড়িয়ে যায় এবং একটি নতুন রিটার্ন প্রদান করে যা বাকিগুলি ফেরত দেয়।

Example

// একটি রিটার্ন তৈরি করুন const myIterator = Iterator.from([1, 2, 3, 4, 5, 6]); // প্রথম পাঁচটি মুছুন const firstFive = myIterator.drop(5);

The every() Method

every(fn)যদি মেথড রিটার্নের সমস্ত উপাদান প্রদত্ত পরীক্ষার ফাংশনকে সন্তুষ্ট করে তবে সত্য প্রদান করে।

Example

// একটি রিটার্ন তৈরি করুন const myIterator = Iterator.from("123456789"); // প্রতিটি উপাদান কি 7 এর বেশি? let result = myIterator.every(x => x > 7);

The filter() Method

filter()পদ্ধতিটি একটি ফিল্টার ফাংশনকে সন্তুষ্ট করে এমন উপাদান ধারণকারী একটি নতুন রিটার্ন প্রদান করে।

Example

// একটি রিটার্ন তৈরি করুন const myIterator = Iterator.from([32, 33, 16, 40]); // রিটার্ন ফিল্টার করুন const filteredIterator = myIterator.filter(x => x > 18);

The find() Method

find(fn)পদ্ধতিটি প্রথম উপাদানটি প্রদান করে যা একটি পরীক্ষার ফাংশনকে সন্তুষ্ট করে।

Example

// একটি রিটার্ন তৈরি করুন const myIterator = Iterator.from([3, 10, 18, 30, 20]); // 18 এর চেয়ে বড় প্রথম উপাদান খুঁজুন let result = myIterator.find(x => x > 18);

The flatMap() Method

flatMap()পদ্ধতিটি প্রতিটি উপাদানকে ম্যাপ করে এবং তারপর ফলাফলগুলিকে একটি রিটার্নে যোগ করে একটি নতুন রিটার্ন প্রদান করে।

Example

// একটি রিটার্ন তৈরি করুন const myIterator = Iterator.from([1, 2, 3, 4, 5, 6]); // রিটার্ন ম্যাপ করুন const mappedIterator = myIterator.flatMap(x => [x, x * 10]);

The forEach() Method

forEach()একটি পদ্ধতি লুপের প্রতিটি উপাদানের জন্য একবার প্রদত্ত ফাংশনটি কার্যকর করে।

Example

// একটি রিটার্ন তৈরি করুন const myIterator = Iterator.from("123456789"); // সমস্ত উপাদানের উপর পুনরাবৃত্তি করুন let text = ""; myIterator.forEach (x => পাঠ্য += x);

The map() Method

map()পদ্ধতিটি একটি মানচিত্র অপারেশন দ্বারা পরিবর্তিত সমস্ত উপাদান ধারণকারী একটি নতুন রিটার্ন প্রদান করে।

Example

// একটি রিটার্ন তৈরি করুন const myIterator = Iterator.from("123456789"); // এখন আপনি মানচিত্র পদ্ধতি ব্যবহার করতে পারেন const mappedIterator = myIterator.map(x => x * 2);

The reduce() Method

reduce()পদ্ধতিটি একটি একক মান কমাতে প্রতিটি উপাদানের বিপরীতে একটি সঞ্চয়কারী এবং একটি হ্রাসকারী ফাংশন ব্যবহার করে।

Example

// একটি রিটার্ন তৈরি করুন const myIterator = Iterator.from([175, 50, 25]); // প্রতিক্রিয়া হ্রাস করুন let result = myIterator.reduce(myFunc);

The some() Method

some()যদি অন্তত একটি উপাদান প্রদত্ত পরীক্ষার ফাংশনকে সন্তুষ্ট করে তবে পদ্ধতিটি সত্য হয়।

Example

// একটি রিটার্ন তৈরি করুন const myIterator = Iterator.from("123456789"); // কিছু উপাদান কি 7 এর চেয়ে বেশি? যাক ফলাফল = myIterator.some(x => x > 7);

The take() Method

take()পদ্ধতিটি একটি নতুন রিটার্ন প্রদান করে যা সর্বাধিক নির্দিষ্ট সংখ্যক উপাদান প্রদান করে।

Example

const myIterator = Iterator.from([1, 2, 3, 4, 5, 6]); // প্রথম পাঁচটি উপাদান পান const firstFive = myIterator.take(5);

🎯গুরুত্বপূর্ণ নোট:

রিটার্ন সরাসরি মূল জাভাস্ক্রিপ্ট ভাষায় রিটার্ন ধারণা নিয়ে আসে এবং এর জন্য... এর আচরণ কাস্টমাইজ করার জন্য একটি প্রক্রিয়া প্রদান করে।

জাভাস্ক্রিপ্ট ইটারেটর টিউটোরিয়াল

নিম্নলিখিত কোড বিবেচনা করুন:

const myIterator = Iterator.from([1, 2, 3, 4, 5]);
const result = myIterator.filter(x => x % 2 === 0).take(2);

রিটার্ন ফলাফল থেকে প্রত্যাবর্তিত মান কি?

সঠিক উত্তর চয়ন করুন:

[1, 2]
✗ ভুল! ফিল্টার(x => x % 2 === 0) শুধুমাত্র জোড় সংখ্যা নির্বাচন করে
[2, 4]
✓ ঠিক আছে! ফিল্টার জোড় সংখ্যা নির্বাচন করে (2,4) এবং take(2) প্রথম দুটি নেয়
[2, 4, 5]
✗ ভুল! take(2) শুধুমাত্র দুটি উপাদান নেয়, 5 একটি জোড় সংখ্যা নয়
[1, 3, 5]
✗ ভুল! ফিল্টার(x => x % 2 === 0) শুধুমাত্র জোড় সংখ্যা নির্বাচন করে, বিজোড় সংখ্যা নয়