Iterator là một mẫu lập trình phổ biến dùng để duyệt qua danh sách đối tượng khi
- Có thể không xác định được kích thước của danh sách ngay từ đầu.
- Việc tải toàn bộ danh sách vào bộ nhớ cùng một lúc có thể gây tốn tài nguyên quá mức.
Iterator hiển thị hai phương thức: boolean hasNext()
và Object next()
.
Tập lệnh Google Ads sử dụng mẫu Iterator để tìm nạp các thực thể Google Ads.
Về mặt chức năng, trình duyệt không khác nhiều so với các mảng thông thường và có thể giúp mã của bạn ngắn gọn hơn. So sánh mã duyệt qua một mảng:
for (var i = 0; i < myArray.length; i++) {
let myObject = myArray[i];
}
với mã duyệt qua một trình lặp:
while (myIterator.hasNext()) {
let myObject = myIterator.next();
}
Đoạn mã sau đây minh hoạ cách sử dụng trình lặp trên tất cả chiến dịch trong tài khoản của bạn:
var campaignIterator = AdsApp.campaigns().get();
while (campaignIterator.hasNext()) {
let campaign = campaignIterator.next();
console.log(`${campaign.getName()}; active? ${campaign.isEnabled()}; ` +
`budget=${campaign.getBudget().getAmount()}`);
}
Bạn cũng có thể sử dụng tính năng lặp lại JavaScript tích hợp sẵn:
for (const campaign of AdsApp.campaigns()) {
console.log(`${campaign.getName()}; active? ${campaign.isEnabled()}; ` +
`budget=${campaign.getBudget().getAmount()}`);
}
Việc áp dụng withLimit()
cho bộ chọn không làm thay đổi giá trị của totalNumEntities()
. x
và y
trong đoạn mã sau sẽ có cùng giá trị:
var x = AdsApp.keywords().get().totalNumEntities();
var y = AdsApp.keywords().withLimit(5).get().totalNumEntities();
Để lấy Iterator của các thực thể Google Ads, trước tiên, bạn phải tạo một Selector (Chọn).