Работа над несколькими алгоритмами для начинающих c упражнений в JS. Я не понимаю, как работает «разбиение на части», когда доходит до оператора «если».
Основная путаница у меня возникает после итерации до второго значения; потому что в первом прогоне он соответствует критериям неопределенности последнего; поэтому "1" вставляется в переменную с фрагментами. Итак, как только появится вторая переменная, 2, поскольку последняя теперь определена и длина Last не равна аргументу "len", она будет go в части else. 2 будет помещено в "последний" и сформируется last = "[1], 2"?
Затем, когда начинает поступать третье значение (3), я еще больше запутываюсь. Каким образом оператор if chunked.pu sh ([number]) знает, что именно pu sh [1], 2 в chunked, если число в этой точке также равно 3? Это пропуск 3 ?. Я знаю, что длина last в этой точке соответствует len, но как она формулируется от [1], 2 до фрагмента [1,2]?
Я предполагал, что 3 также будет помещено в «последний».
Прошу прощения, если это тоже сбивает с толку! Я просмотрел множество руководств по решению этой же проблемы в Интернете, но нигде не объясняет это подробно.
function chunkedArr(arr, len){
const chunked = [];
for (let number of arr){
const last = chunked[chunked.length-1]
console.log(last)
if(!last || last.length === len){
chunked.push( [number]);
} else {
last.push(number)
}
}
return chunked;
}
console.log(chunkedArr([1,2,3,4,5,6],2))