• 1000 1003 * номера переменных точек останова.
Ниже приведен один рабочий пример, который использует ваш подход во всех других отношениях.
Читая, как вы используете точки останова, они больше "длины" чем «точки останова», поэтому я назвал их «длинами» в этом коде.
Я дал два разных вызова splitArray, потому что вызов, который вы делаете в вашем примере, не будет (с вашим кодом) производить вывод указан в комментариях к коду.
function splitArray(arr, lengths) {
let pointer = 0;
lengths.forEach(length => {
console.log(arr.slice(pointer, pointer + length));
pointer += length;
})
}
splitArray([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [2, 4, 3, 1, 2])
// And to produce the example output in your question:
splitArray([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [3, 4, 1, 2])
Если должен передавать точки останова / длины как отдельные входные параметры, а не как массив, вы можете использовать оператор Javascript ...
для автоматического соберите их в массив, например:
function splitArray(arr, ...lengths)
Однако это работает только на языках программирования, которые имеют такую возможность, и может стать проблемой, если вам позже понадобится передать два или несколько списков чисел переменной длины.
Вот почему я рекомендую передавать точки останова / длины в виде массива, а именно не загонять себя в угол, если ваша программа позже станет более сложной, или вам нужно реализовать алгоритм почему-то на другом языке.