একটি পুনরাবৃত্তকারী একটি পুনরুক্তি হিসাবে একই, বা তারা পৃথক?
স্পেসিফিকেশন থেকে মনে হয়, একটি পুনরাবৃত্তিযোগ্য একটি বস্তু, বলুন, objযেমন obj[Symbol.iterator]কোনও ফাংশনকে বোঝায়, যাতে যখন আহ্বান করা হয় তখন এমন কোনও বস্তু ফিরে আসে যা এমন কোনও nextপদ্ধতিতে থাকে যা কোনও বস্তুকে ফেরত দিতে পারে {value: ___, done: ___}:
function foo() {
let i = 0;
const wah = {
next: function() {
if (i <= 2) return { value: (1 + 2 * i++), done: false }
else return { value: undefined, done: true }
}
};
return wah; // wah is iterator
}
let bar = {} // bar is iterable
bar[Symbol.iterator] = foo;
console.log([...bar]); // [1, 3, 5]
for (a of bar) console.log(a); // 1 3 5 (in three lines)
তাই উপরের কোড এ, bariterable, এবং wahপুনরুক্তিকারীর, এবং next()পুনরুক্তিকারীর ইন্টারফেস।
সুতরাং, পুনরাবৃত্তিযোগ্য এবং পুনরাবৃত্তি পৃথক জিনিস।
এখন, জেনারেটর এবং পুনরুদ্ধারের সাধারণ উদাহরণে:
function* gen1() {
yield 1;
yield 3;
yield 5;
}
const iter1 = gen1();
console.log([...iter1]); // [1, 3, 5]
for (a of iter1) console.log(a); // nothing
const iter2 = gen1();
for (a of iter2) console.log(a); // 1 3 5 (in three lines)
console.log(iter1[Symbol.iterator]() === iter1); // true
উপরের ক্ষেত্রে, gen1জেনারেটর এবং iter1এটি পুনরুক্তিকারী এবং iter1.next()সঠিক কাজটি করবে। কিন্তু iter1[Symbol.iterator]একটি ফাংশন দেয় যা, যখন আহ্বান করা হয়, ফিরে দেয় iter1, যা একটি পুনরাবৃত্তি হয়। সুতরাং iter1এই ক্ষেত্রে একটি পুনরাবৃত্ত এবং পুনরুক্তি উভয় হয়?
এছাড়া iter1, কারণ iterable উদাহরণ 1 দিতে পারেন উপরের উদাহরণে 1 থেকে ভিন্ন [1, 3, 5]হিসেবে ব্যবহার চেয়েছিলেন অনেকবার হিসাবে [...bar]সময়, iter1একটি iterable, কিন্তু যেহেতু এটি নিজেই ফেরৎ, যা একই পুনরুক্তিকারীর প্রত্যেক সময়, শুধুমাত্র দেব [1, 3, 5]একবার।
সুতরাং আমরা বলতে পারি, পুনরাবৃত্তির জন্য bar, [...bar]ফলাফলটি কতবার দিতে পারে [1, 3, 5]- এবং উত্তরটি হ'ল এটি নির্ভর করে। এবং পুনরাবৃত্ত একটি পুনরুক্তি হিসাবে একই? এবং উত্তরটি হ'ল, এগুলি ভিন্ন জিনিস, তবে এগুলি একই হতে পারে, যখন পুনরাবৃত্তকারী নিজেকে পুনরুক্তি হিসাবে ব্যবহার করে। এটা কি ঠিক?
iter1এই ক্ষেত্রে একটি পুনরাবৃত্ত এবং পুনরুক্তি উভয়? " - হ্যাঁ। সমস্ত দেশীয় পুনরাবৃত্তকারীরা নিজেরাই ফিরে আসার মাধ্যমে পুনরাবৃত্ত হয়, যাতে আপনি সহজেই তাদের পুনরায় পুনঃনির্মাণের প্রত্যাশা করে এমন কন্সট্রাক্টে পাস করতে পারেন।