इटरेटर

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

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

Iterators दो तरीके दिखाते हैं: 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();
}

यहां दिए गए कोड में, आपके खाते के सभी कैंपेन में, किसी इटरेटटर के इस्तेमाल का उदाहरण दिया गया है:

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 इकाइयों का Iterator पाने के लिए, आपको पहले एक सिलेक्टर बनाना होगा.