इटरेटर, प्रोग्रामिंग का एक सामान्य पैटर्न है. इसका इस्तेमाल, ऑब्जेक्ट की सूची को ट्रैवर्स करने के लिए किया जाता है. हालांकि, ऐसा तब किया जाता है, जब
- सूची का साइज़, शुरू से ही पता न हो.
- पूरी सूची को एक साथ मेमोरी में लोड करने पर, ज़्यादा संसाधनों का इस्तेमाल हो सकता है.
इटरेटर, दो तरीके उपलब्ध कराते हैं: boolean hasNext() और Object next().
Google Ads स्क्रिप्ट, Google Ads की इकाइयां फ़ेच करने के लिए, इटरेटर पैटर्न का इस्तेमाल करती हैं.
काम के हिसाब से, इटरेटर, सामान्य कलेक्शन से ज़्यादा अलग नहीं होते. साथ ही, ये आपके कोड को ज़्यादा संक्षिप्त बना सकते हैं. कलेक्शन को ट्रैवर्स करने वाले कोड की तुलना करें:
for (var i = 0; i < myArray.length; i++) {
let myObject = myArray[i];
}
इटरेटर को ट्रैवर्स करने वाले कोड से:
while (myIterator.hasNext()) {
let myObject = myIterator.next();
}
यहां दिया गया कोड, आपके खाते में मौजूद सभी सर्च और डिसप्ले कैंपेन पर, इटरेटर के इस्तेमाल के बारे में बताता है:
var campaignIterator = AdsApp.campaigns().get();
while (campaignIterator.hasNext()) {
let campaign = campaignIterator.next();
console.log(`${campaign.getName()}; active? ${campaign.isEnabled()}; ` +
`budget=${campaign.getBudget().getAmount()}`);
}
JavaScript के इन-बिल्ट इटरेटर का भी इस्तेमाल किया जा सकता है:
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 की इकाइयों का इटरेटर पाने के लिए, सबसे पहले आपको सिलेक्टर बनाना होगा.