반복자는 다음과 같은 경우에 객체 목록을 탐색하는 데 사용되는 일반적인 프로그래밍 패턴입니다.
- 시작부터 목록의 크기를 알지 못하는 경우
- 전체 목록을 한 번에 메모리에 로드하면 리소스가 과도하게 사용될 수 있습니다.
반복자는 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를 가져오려면 먼저 선택자를 구성해야 합니다.