প্রকাশিত: মে 1, 2025
আপনি যদি জাভাস্ক্রিপ্ট লেখেন, তাহলে পুনরাবৃত্তি করা এমন কিছু যা আপনি অনেক কিছু করেন। আপনি হয় অ্যারেগুলির সাথে কাজ করার জন্য লুপ লিখছেন, বা সমস্ত ধরণের ডেটা প্রক্রিয়া করার জন্য কার্যকরী প্রোগ্রামিং পদ্ধতি যেমন map
, filter
এবং অন্যান্য অনুরূপ পদ্ধতি ব্যবহার করছেন৷
এই পদ্ধতিগুলি ব্যবহার করার সাথে একটি স্টিকিং পয়েন্ট হল যে তারা শুধুমাত্র অ্যারেতে উপলব্ধ। আপনি যদি একটি পুনরাবৃত্তিযোগ্য এগুলি ব্যবহার করতে চান তবে আপনাকে এটিকে একটি অ্যারেতে রূপান্তর করতে হবে এবং তারপরে আপনার প্রয়োজনীয় পদ্ধতিতে কল করতে হবে। এটি অপব্যয় হতে পারে, অথবা যে ক্ষেত্রে ইন্টারেবল প্রতিনিধিত্ব করে জেনারেটর ফাংশন ব্যবহার করে অসীম ডেটাসেট রয়েছে, এটি সম্ভব নয়। যাইহোক, এখন যেহেতু ইটারেটর সাহায্যকারীরা বেসলাইন হয়ে উঠেছে নতুনভাবে উপলব্ধ, এই ক্ষমতা অবশেষে ব্রাউজার জুড়ে উপলব্ধ।
কিভাবে পুনরাবৃত্তি সহায়ক কাজ করে?
Iterator
অবজেক্��ের prototype
নতুন পদ্ধতি সংজ্ঞায়িত করে ইটারেটর হেল্পারদের প্রকাশ করা হয়। এই পদ্ধতিগুলি অনেক কার্যকরী প্রোগ্রামিং পদ্ধতির সাথে সারিবদ্ধ করে যা আপনি ব্যবহার করতে অভ্যস্ত, যেমন map
, filter
, reduce
, এবং অন্যান্য অনুরূপ পদ্ধতি৷
উদাহরণস্বরূপ, আপনি DOM নোডের একটি সংগ্রহের জন্য তাদের innerText
সম্পত্তির বিষয়বস্তু দ্বারা তালিকা আইটেমগুলিকে ফিল্টার করতে filter
পদ্ধতিতে একটি ইটারেটর সাহায্যকারী ব্যবহার করতে পারেন, যা আপনি পরে লুপের for
ব্যবহার করতে পারেন:
const posts = document.querySelectorAll("ul#specific-list > li")
.values()
.filter(item => item.textContent.includes("kiwi"));
// For-of loops can only be used on iterables, which `posts` is!
for (const post of posts) {
console.log(post.textContent);
}
পূর্ববর্তী কোড স্নিপেটে, filter
জন্য ইটারেটর হেল্পার পদ্ধতিটি একটি নির্দিষ্ট <ul>
উপাদানের সমস্ত <li>
উপাদানগুলির উপর পুনরাবৃত্তি করতে ব্যবহৃত হয়। ফিল্টারিং মানদণ্ড হল প্রতিটি উপাদানের পাঠ্য সামগ্রীতে অবশ্যই "kiwi"
এর একটি সাবস্ট্রিং থাকতে হবে।
জেনারেটর ফাংশনগুলির সাথেও ইটারেটর সাহায্যকারী ব্যবহার করা যেতে পারে। এই উদাহরণে, একটি জেনারেটর ফাংশন যা ফ্যাক্টোরিয়াল গণনা করে, কিন্তু 8 দ্বারা বিভাজ্য মানগুলিকে ফিল্টার করতে এবং কনসোলে প্রথম পাঁচটি ফিল্টার করা মানগুলিকে লগ করতে ইটরেটর হেল্পার ব্যবহার করে:
function* factorials (n) {
let result = 1;
for (let i = 1; i <= n; i++) {
result *= i;
yield result;
}
}
const filteredFactorials = factorials(128).filter(x => x % 8 === 0);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
বিশেষ করে, পূর্ববর্তী কোড স্নিপেট এমন একটি উদাহরণ যা পুনরাবৃত্তিকারী সাহায্যকারীদের দ্বারা সম্ভব হবে না, কারণ ফ্যাক্টোরিয়ালের সংখ্যা অসীম, এবং এমন কিছু নয় যা আপনি অন্যথায় একটি অ্যারেতে রূপান্তর করতে পারেন!
আপনার পরিস্থিতির উপর নির্ভর করে, পুনরাবৃত্তিকারী সাহায্যকারীদের অনেক সম্ভাবনা রয়েছে- এবং তারা এই পুনরাবৃত্তিযোগ্য পদ্ধতিগুলির প্রতিটির জন্য উপলব্ধ:
ইটারেটর হেল্পার ব্যবহারের ক্ষেত্রে সম্ভাবনাগুলি বিশাল, এবং ডেভেলপার এরগনোমিক্সে একটি উল্লেখযোগ্য উন্নতি প্রদান করতে পারে। এখন যেহেতু তারা বেসলাইন নতুনভাবে উপলব্ধ, সময়ের সাথে সাথে আপনার আত্মবিশ্বাস বাড়তে হবে যে আপনি সামঞ্জস্যের সমস্যাগুলির ভয় ছাড়াই সেগুলি ব্যবহার করতে পারবেন। আরও তথ্যের জন্য, নিম্নলিখিত সংস্থানগুলি দেখুন:
- V8 ব্লগে ইটারেটর সাহায্যকারী ।
- MDN-এ ইটারেটর সহায়ক পদ্ধতির তালিকা ।
- ইটারেটার সাহায্যকারী TC39 প্রস্তাব ।
প্রকাশিত: মে 1, 2025
আপনি যদি জাভাস্ক্রিপ্ট লেখেন, তাহলে পুনরাবৃত্তি করা এমন কিছু যা আপনি অনেক কিছু করেন। আপনি হয় অ্যারেগুলির সাথে কাজ করার জন্য লুপ লিখছেন, বা সমস্ত ধরণের ডেটা প্রক্রিয়া করার জন্য কার্যকরী প্রোগ্রামিং পদ্ধতি যেমন map
, filter
এবং অন্যান্য অনুরূপ পদ্ধতি ব্যবহার করছেন৷
এই পদ্ধতিগুলি ব্যবহার করার সাথে একটি স্টিকিং পয়েন্ট হল যে তারা শুধুমাত্র অ্যারেতে উপলব্ধ। আপনি ��দি একটি পুনরাবৃত্তিযোগ্য এগুলি ব্যবহার করতে চান তবে আপনাকে এটিকে একটি অ্যারেতে রূপান্তর করতে হবে এবং তারপরে আপনার প্রয়োজনীয় পদ্ধতিতে কল করতে হবে। এটি অপব্যয় হতে পারে, অথবা যে ক্ষেত্রে ইন্টারেবল প্রতিনিধিত্ব করে জেনারেটর ফাংশন ব্যবহার করে অসীম ডেটাসেট রয়েছে, এটি সম্ভব নয়। যাইহোক, এখন যেহেতু ইটারেটর সাহায্যকারীরা বেসলাইন হয়ে উঠেছে নতুনভাবে উপলব্ধ, এই ক্ষমতা অবশেষে ব্রাউজার জুড়ে উপলব্ধ।
কিভাবে পুনরাবৃত্তি সহায়ক কাজ করে?
Iterator
অবজেক্টের prototype
নতুন পদ্ধতি সংজ্ঞায়িত করে ইটারেটর হেল্পারদের প্রকাশ করা হয়। এই পদ্ধতিগুলি অনেক কার্যকরী প্রোগ্রামিং পদ্ধতির সাথে সারিবদ্ধ করে যা আপনি ব্যবহার করতে অভ্যস্ত, যেমন map
, filter
, reduce
, এবং অন্যান্য অনুরূপ পদ্ধতি৷
উদাহরণস্বরূপ, আপনি DOM নোডের একটি সংগ্রহের জন্য তাদের innerText
সম্পত্তির বিষয়বস্তু দ্বারা তালিকা আইটেমগুলিকে ফিল্টার করতে filter
পদ্ধতিতে একটি ইটারেটর সাহায্যকারী ব্যবহার করতে পারেন, যা আপনি পরে লুপের for
ব্যবহার করতে পারেন:
const posts = document.querySelectorAll("ul#specific-list > li")
.values()
.filter(item => item.textContent.includes("kiwi"));
// For-of loops can only be used on iterables, which `posts` is!
for (const post of posts) {
console.log(post.textContent);
}
পূর্ববর্তী কোড স্নিপেটে, filter
জন্য ইটারেটর হেল্পার পদ্ধতিটি একটি নির্দিষ্ট <ul>
উপাদানের সমস্ত <li>
উপাদানগুলির উপর পুনরাবৃত্তি করতে ব্যবহৃত হয়। ফিল্টারিং মানদণ্ড হল প্রতিটি উপাদানের পাঠ্য সামগ্রীতে অবশ্যই "kiwi"
এর একটি সাবস্ট্রিং থাকতে হবে।
জেনারেটর ফাংশনগুলির সাথেও ইটারেটর সাহায্যকারী ব্যবহার করা যেতে পারে। এই উদাহরণে, একটি জেনারেটর ফাংশন যা ফ্যাক্টোরিয়াল গণনা করে, কিন্তু 8 দ্বারা বিভাজ্য মানগুলিকে ফিল্টার করতে এবং কনসোলে প্রথম পাঁচটি ফিল্টার করা মানগুলিকে লগ করতে ইটরেটর হেল্পার ব্যবহার করে:
function* factorials (n) {
let result = 1;
for (let i = 1; i <= n; i++) {
result *= i;
yield result;
}
}
const filteredFactorials = factorials(128).filter(x => x % 8 === 0);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
বিশেষ করে, পূর্ববর্তী কোড স্নিপেট এমন একটি উদাহরণ যা পুনরাবৃত্তিকারী সাহায্যকারীদের দ্বারা সম্ভব হবে না, কারণ ফ্যাক্টোরিয়ালের সংখ্যা অসীম, এবং এমন কিছু নয় যা আপনি অন্যথায় একটি অ্যারেতে রূপান্তর করতে পারেন!
আপনার পরিস্থিতির উপর নির্ভর করে, পুনরাবৃত্তিকারী সাহায্যকারীদের অনেক সম্ভাবনা রয়েছে- এবং তারা এই পুনরাবৃত্তিযোগ্য পদ্ধতিগুলির প্রতিটির জন্য উপলব্ধ:
ইটারেটর হেল্পার ব্যবহারের ক্ষেত্রে সম্ভাবনাগুলি বিশাল, এবং ডেভেলপার এরগনোমিক্সে একটি উল্লেখযোগ্য উন্নতি প্রদান করতে পারে। এখন যেহেতু তারা বেসলাইন নতুনভাবে উপলব্ধ, সময়ের সাথে সাথে আপনার আত্মবিশ্বাস বাড়তে হবে যে আপনি সামঞ্জস্যের সমস্যাগুলির ভয় ছাড়াই সেগুলি ব্যবহার করতে পারবেন। আরও তথ্যের জন্য, নিম্নলিখিত সংস্থানগুলি দেখুন:
- V8 ব্লগে ইটারেটর সাহায্যকারী ।
- MDN-এ ইটারেটর সহায়ক পদ্ধতির তালিকা ।
- ইটারেটার সাহায্যকারী TC39 প্রস্তাব ।
প্রকাশিত: মে 1, 2025
আপনি যদি জাভাস্ক্রিপ্ট লেখেন, তাহলে পুনরাবৃত্তি করা এমন কিছু যা আপনি অনেক কিছু করেন। আপনি হয় অ্যারেগুলির সাথে কাজ করার জন্য লুপ লিখ��েন, বা সমস্ত ধরণের ডেটা প্রক্রিয়া করার জন্য কার্যকরী প্রোগ্রামিং পদ্ধতি যেমন map
, filter
এবং অন্যান্য অনুরূপ পদ্ধতি ব্যবহার করছেন৷
এই পদ্ধতিগুলি ব্যবহার করার সাথে একটি স্টিকিং পয়েন্ট হল যে তারা শুধুমাত্র অ্যারেতে উপলব্ধ। আপনি যদি একটি পুনরাবৃত্তিযোগ্য এগুলি ব্যবহার করতে চান তবে আপনাকে এটিকে একটি অ্যারেতে রূপান্তর করতে হবে এবং তারপরে আপনার প্রয়োজনীয় পদ্ধতিতে কল করতে হবে। এ��ি ����ব্যয় হতে পারে, অথবা যে ক্ষেত্রে ইন্টারেবল প্রতিনিধিত্ব করে জেনারেটর ফাংশন ব্যবহার করে অসীম ডেটাসেট রয়েছে, এটি সম্ভব নয়। যাইহোক, এখন যেহেতু ইটারেটর সাহায্যকারীরা বেসলাইন হয়ে উঠেছে নতুনভাবে উপলব্ধ, এই ক্ষমতা অবশেষে ব্রাউজার জুড়ে উপলব্ধ।
কিভাবে পুনরাবৃত্তি সহায়ক কাজ করে?
Iterator
অবজেক্টের prototype
নতুন পদ্ধতি সংজ্ঞায়িত করে ইটারেটর হেল্পারদের প্রকাশ করা হয়। এই পদ্ধতিগুলি অনেক কার্যকরী প্রোগ্রামিং পদ্ধতির সাথে সারিবদ্ধ করে যা আপনি ব্যবহার করতে অভ্যস্ত, যেমন map
, filter
, reduce
, এবং অন্যান্য অনুরূপ পদ্ধতি৷
উদাহরণস্বরূপ, আপনি DOM নোডের একটি সংগ্রহের জন্য তাদের innerText
সম্পত্তির বিষয়বস্তু দ্বারা তালিকা আইটেমগুলিকে ফিল্টার করতে filter
পদ্ধতিতে একটি ইটারেটর সাহায্যকারী ব্যবহার করতে পারেন, যা আপনি পরে লুপের for
ব্যবহার করতে পারেন:
const posts = document.querySelectorAll("ul#specific-list > li")
.values()
.filter(item => item.textContent.includes("kiwi"));
// For-of loops can only be used on iterables, which `posts` is!
for (const post of posts) {
console.log(post.textContent);
}
পূর্ববর্তী কোড স্নিপেটে, filter
জন্য ইটারেটর হেল্পার পদ্ধতিটি একটি নির্দিষ্ট <ul>
উপাদানের সমস্ত <li>
উপাদানগুলির উপর পুনরাবৃত্তি করতে ব্যবহৃত হয়। ফিল্টারিং মানদণ্ড হল প্রতিটি উপাদানের পাঠ্য সামগ্রীতে অবশ্যই "kiwi"
এর একটি সাবস্ট্রিং থাকতে হবে।
জেনারেটর ফাংশনগুলির সাথেও ইটারেটর সাহায্যকারী ব্যবহার করা যেতে পারে। এই উদাহরণে, একটি জেনারেটর ফাংশন যা ফ্যাক্টোরিয়াল গণনা করে, কিন্তু 8 দ্বারা বিভাজ্য মানগুলিকে ফিল্টার করতে এবং কনসোলে প্রথম পাঁচটি ফিল্টার করা মানগুলিকে লগ করতে ইটরেটর হেল্পার ব্যবহার করে:
function* factorials (n) {
let result = 1;
for (let i = 1; i <= n; i++) {
result *= i;
yield result;
}
}
const filteredFactorials = factorials(128).filter(x => x % 8 === 0);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
বিশেষ করে, পূর্ববর্তী কোড স্নিপেট এমন একটি উদাহরণ যা পুনরাবৃত্তিকারী সাহায্যকারীদের দ্বারা সম্ভব হবে না, কারণ ফ্যাক্টোরিয়ালের সংখ্যা অসীম, এবং এমন কিছু নয় যা আপনি অন্যথায় একটি অ্যারেতে রূপান্তর করতে পারেন!
আপনার পরিস্থিতির উপর নির্ভর করে, পুনরাবৃত্তিকারী সাহায্যকারীদের অনেক সম্ভাবনা রয়েছে- এবং তারা এই পুনরাবৃত্তিযোগ্য পদ্ধতিগুলির প্রতিটির জন্য উপলব্ধ:
ইটারেটর হেল্পার ব্যবহারের ক্ষেত্রে সম্ভাবনাগুলি বিশাল, এবং ডেভেলপার এরগনোমিক্সে একটি উল্লেখযোগ্য উন্নতি প্রদান করতে পারে। এখন যেহেতু তারা বেসলাইন নতুনভাবে উপলব্ধ, সময়ের সাথে সাথে আপনার আত্মবিশ্বাস বাড়তে হবে যে আপনি সামঞ্জস্যের সমস্যাগুলির ভয় ছাড়াই সেগুলি ব্যবহার করতে পারবেন। আরও তথ্যের জন্য, নিম্নলিখিত সংস্থানগুলি দেখুন:
- V8 ব্লগে ইটারেটর সাহায্যকারী ।
- MDN-এ ইটারেটর সহায়ক পদ্ধতির তালিকা ।
- ইটারেটার সাহায্যকারী TC39 প্রস্তাব ।
প্রকাশিত: মে 1, 2025
আপনি যদি জাভাস্ক্রিপ্ট লেখেন, তাহলে পুনরাবৃত্তি করা এমন কিছু যা আপনি অনেক কিছু করেন। আপনি হয় অ্যারেগুলির সাথে কাজ করার জন্য লুপ লিখছেন, বা সমস্ত ধরণের ডেটা প্রক্রিয়া করার জন্য কার্যকরী প্রোগ্রামিং পদ্ধতি যেমন map
, filter
এবং অন্যান্য অনুরূপ পদ্ধতি ব্যবহার করছেন৷
এই পদ্ধতিগুলি ব্যবহার করার সাথে একটি স্টিকিং পয়েন্ট হল যে তারা শুধুমাত্র অ্যারেতে উপলব্ধ। আপনি যদি একটি পুনরাবৃত্তিযোগ্য এগুলি ব্যবহার করতে চান তবে আপনাকে এটিকে একটি অ্যারেতে রূপান্তর করতে হবে এবং তারপরে আপনার প্রয়োজনীয় পদ্ধতিতে কল করতে হবে। এটি অপব্যয় হতে পারে, অথবা যে ক্ষেত্রে ইন্টারেবল প্রতিনিধিত্ব করে জেনারেটর ফাংশন ব্যবহার করে অসীম ডেটাসেট রয়েছে, এটি সম্ভব নয়। যাইহোক, এখন যেহেতু ইটারেটর সাহায্যকারীরা বেসলাইন হয়ে উঠেছে নতুনভাবে উপলব্ধ, এই ক্ষমতা অবশেষে ব্রাউজার জুড়ে উপলব্ধ।
কিভাবে পুনরাবৃত্তি সহায়ক কাজ করে?
Iterator
অবজেক্টের prototype
নতুন পদ্ধতি সংজ্ঞায়িত করে ইটারেটর হেল্পারদের প্রকাশ করা হয়। এই পদ্ধতিগুলি অনেক কার্যকরী প্রোগ্রামিং পদ্ধতির সাথে সারিবদ্ধ করে যা আপনি ব্যবহার করতে অভ্যস্ত, যেমন map
, filter
, reduce
, এবং অন্যান্য অনুরূপ পদ্ধতি৷
উদাহরণস্বরূপ, আপনি DOM নোডের একটি সংগ্রহের জন্য তাদের innerText
সম্পত্তির বিষয়বস্তু দ্বারা তালিকা আইটেমগুলিকে ফিল্টার করতে filter
পদ্ধতিতে একটি ইটারেটর সাহায্যকারী ব্যবহার করতে পারেন, যা আপনি পরে লুপের for
ব্যবহার করতে পারেন:
const posts = document.querySelectorAll("ul#specific-list > li")
.values()
.filter(item => item.textContent.includes("kiwi"));
// For-of loops can only be used on iterables, which `posts` is!
for (const post of posts) {
console.log(post.textContent);
}
পূর্ববর্তী কোড স্নিপেটে, filter
জন্য ইটারেটর হেল্পার পদ্ধতিটি একটি নির্দিষ্ট <ul>
উপাদানের সমস্ত <li>
উপাদানগুলির উপর পুনরাবৃত্তি করতে ব্যবহৃত হয়। ফিল্টারিং মানদণ্ড হল প্রতিটি উপাদানের পাঠ্য সামগ্রীতে অবশ্যই "kiwi"
এর একটি সাবস্ট্রিং থাকতে হবে।
জেনারেটর ফাংশনগুলির সাথেও ইটারেটর সাহায্যকারী ব্যবহার করা যেতে পারে। এই উদাহরণে, একটি জেনারেটর ফাংশন যা ফ্যাক্টোরিয়াল গণনা করে, কিন্তু 8 দ্বারা বিভাজ্য মানগুলিকে ফিল্টার করতে এবং কনসোলে প্রথম পাঁচটি ফিল্টার করা মানগুলিকে লগ করতে ইটরেটর হেল্পার ব্যবহার করে:
function* factorials (n) {
let result = 1;
for (let i = 1; i <= n; i++) {
result *= i;
yield result;
}
}
const filteredFactorials = factorials(128).filter(x => x % 8 === 0);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
বিশেষ করে, পূর্ববর্তী কোড স্নিপেট এমন একটি উদাহরণ যা পুনরাবৃত্তিকারী সাহায্য��ারীদের দ্বারা সম্ভব হবে না, কারণ ফ্যাক্টোরিয়ালের সংখ্যা অসীম, এবং এমন কিছু নয় যা আপনি অন্যথায় একটি অ্যারেতে রূপান্তর করতে পারেন!
আপনার পরিস্থিতির উপর নির্ভর করে, পুনরাবৃত্তিকারী সাহায্যকারীদের অনেক সম্ভাবনা রয়েছে- এবং তারা এই পুনরাবৃত্তিযোগ্য পদ্ধতিগুলির প্রতিটির জন্য ��পলব্ধ:
ইটারেটর হেল্পার ব্যবহারের ক্ষেত্রে সম্ভাবনাগুলি বিশাল, এবং ডেভেলপার এরগনোমিক্সে একটি উল্লেখযোগ্য উন্নতি প্রদান করতে পারে। এখন যেহেতু তারা বেসলাইন নতুনভাবে উপলব্ধ, সময়ের সাথে সাথে আপনার আত্মবিশ্বাস বাড়তে হবে যে আপনি সামঞ্জস্যের সমস্যাগুলির ভয় ছাড়াই সেগুলি ব্যবহার করতে পারবেন। আরও তথ্যের জন্য, নিম্নলিখিত সংস্থানগুলি দেখুন: