(это для процедуры в вк)
Есть начальное число, например 1
Есть число, которое означает некий разрыв, например 9
И есть число, которое означает максимальное количество элементов в 1 массиве, например 3
всего единиц = 1 + 9 = 10
Значит должно получится:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
Как сделать такой алгоритм?
При условии, что можно использовать только while цикл
Сделал нечто такое:
while (currentId <= maxLoadedId) {
if (tempToLoadIds.length > maxPerLoadIds - 1) {
toAddIds.push(tempToLoadIds);
tempToLoadIds = [];
}
tempToLoadIds.push(currentId);
currentId = currentId + 1;
}
toAddIds.push(tempToLoadIds);
Вроде работает, но при "разрыве" больше
450
происходит
Runtime error occurred during code invocation: Too many operations
Мы точно знаем что числа идут последовательно и без пропусков
Уверен что можно сделать как то проще, но что-то не получается
Список доступных методов:Поддерживаются:
арифметические операции
логические операции
создание массивов и списков ([X,Y])
parseInt и parseDouble
конкатенация (+)
конструкция if
фильтр массива по параметру (@.)
вызовы методов API, параметр length
циклы, используя оператор while
методы Javascript: slice, push, pop, shift, unshift, splice, substr, split
оператор delete
присваивания элементам маcсива, например: row.user.action = "test";
поиск в массиве или строке — indexOf, например: "123".indexOf(2) = 1, [1, 2, 3].indexOf(3) = 2. Возвращает -1, если элемент не найден.