इटरेटर

इटरेटर, प्रोग्रामिंग का एक सामान्य पैटर्न है. इसका इस्तेमाल, ऑब्जेक्ट की सूची को ट्रैवर्स करने के लिए किया जाता है. हालांकि,

  • सूची का साइज़, शुरू से ही पता नहीं होता.
  • पूरी सूची को एक साथ मेमोरी में लोड करने से, ज़्यादा संसाधनों का इस्तेमाल हो सकता है.

इटरेटर, दो तरीके उपलब्ध कराते हैं: 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 की इकाइयों का इटरेटर पाने के लिए, सबसे पहले सिलेक्टर बनाना होगा.