Использовать сплайс ()
Так как метод getSheets()
возвращает Array
из Sheet
объектов, вы можете очень просто добиться желаемого с помощью метода splice()
, просто сконфигурируйте его для удаления первых N элементов и не заменяйте их :
var arr = [1,2,3,4,5];
arr.splice(0,3); //0-based start and end indexes;
Logger.log(arr); //should log [4,5]
Обратитесь к документации splice()
метода для MDN для более подробного объяснения. Короче говоря, этот метод принимает неограниченное количество аргументов:
- Обязательно: индекс на основе 0 для начала;
- Необязательно: Индекс на основе 0 заканчивается до конца (если не указан или больше, чем длина
Array
, в котором вызывается метод, удаляет каждый элемент, начиная с индекса начала);
- Необязательно: Список элементов через запятую для замены удаленных элементов на
Использовать forEach ()
Если вы хотите сохранить цикл для выполнения других итерируемых действий, используйте цикл forEach
и проверьте, больше ли index
, чем 10
. Например:
function testArray() {
var arr = ['Sh1','Sh2','Sh3','Sh4','Sh5','Sh6','Sh7','Sh8','Sh9','Sh10','Sh11','Sh12'];
var res = [];
arr.forEach(function (element,index) {
if(index>9) {
res.push(element); //push to test Array;
//iterable code goes here;
}
});
Logger.log(res); //should log ['Sh11','Sh12']
}
Обратите внимание, что функция обратного вызова forEach
принимает три аргумента:
- Требуется: Элемент массива для итерации;
- Необязательно: индекс на основе 0 элемента, в данный момент зацикленного;
- Необязательно: Массив, по которому выполняется цикл;
Пожалуйста, обратитесь к документации forEach
loop по MDN , чтобы лучше понять, как работает этот метод Array
. Также воздержитесь от использования цикла for...in
в тех случаях, когда важен порядок итерации.
Кстати, вам не нужно останавливать итерацию после того, как в Array
больше не будет Sheet
экземпляров, любой цикл завершится сам, цикл завершится после завершения шага над последним элементом Array
.