इटरेटर

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

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

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