ইটারেটর হল একটি সাধারণ প্রোগ্রামিং প্যাটার্ন যা অবজেক্টের তালিকা ট্রাভার্স করার জন্য ব্যবহার করা হয় যখন
- শুরু থেকে তালিকার সাইজ জানা নাও থাকতে পারে।
- সম্পূর্ণ তালিকাটি মেমরিতে একবারে লোড করা হলে তা অত্যধিক রিসোর্স ইনটেনসিভ হতে পারে।
ইটারেটর দুটি পদ্ধতি দেখায়: boolean hasNext() এবং Object next()।
Google Ads এন্টিটি পাওয়ার জন্য Google Ads স্ক্রিপ্ট Iterator প্যাটার্ন ব্যবহার করে।
ফাংশনের দিক থেকে, ইটারেটর সাধারণ অ্যারের থেকে খুব বেশি আলাদা নয় এবং আপনার কোডকে আরও সংক্ষিপ্ত করতে পারে। অ্যারে ট্রাভার্স করে এমন কোডের তুলনা করুন:
for (var i = 0; i < myArray.length; i++) {
let myObject = myArray[i];
}
ইটারেটর ট্রাভার্স করে এমন কোড সহ:
while (myIterator.hasNext()) {
let myObject = myIterator.next();
}
নিচের কোডটি আপনার অ্যাকাউন্টের সব Search এবং ডিসপ্লে ক্যাম্পেনে ইটারেটর ব্যবহারের ডেমো দেখায়:
var campaignIterator = AdsApp.campaigns().get();
while (campaignIterator.hasNext()) {
let campaign = campaignIterator.next();
console.log(`${campaign.getName()}; active? ${campaign.isEnabled()}; ` +
`budget=${campaign.getBudget().getAmount()}`);
}
এছাড়াও, আপনি বিল্ট-ইন জাভাস্ক্রিপ্ট ইটারেশন ব্যবহার করতে পারেন:
for (const campaign of AdsApp.campaigns()) {
console.log(`${campaign.getName()}; active? ${campaign.isEnabled()}; ` +
`budget=${campaign.getBudget().getAmount()}`);
}
সিলেক্টরে withLimit() প্রয়োগ করলে totalNumEntities()-এর ভ্যালু পরিবর্তন হয় না।
নিম্নলিখিত স্নিপেটে x এবং y-এর একই ভ্যালু
থাকবে:
var x = AdsApp.keywords().get().totalNumEntities();
var y = AdsApp.keywords().withLimit(5).get().totalNumEntities();
Google Ads এন্টিটির ইটারেটর পেতে, আপনাকে প্রথমে একটি সিলেক্টর তৈরি করতে হবে।