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