function chunkArrayInGroups(arr, size) {
let newArray = [];
newArray.push(arr.slice(0, size));
let pre = [];
for (let i = 0; i < arr.length ; i+=size) {
pre.push(arr.splice(size, size));
}
console.log( arr.length )
return newArray.concat(pre)
}
console.log(chunkArrayInGroups([0, 1, 2, 3, 4, 5, 6, 7, 8], 2));
Функция должна вернуть -
[[0, 1], [2, 3], [4, 5], [6, 7], [8]]
А возвращает -
[[0, 1], [2, 3], [4, 5], [6, 7]]
То-есть, функция должна разбивать массив(первый аргумент) на группы по длине(второй аргумент) и вернуть их в виде двухмерного массива
В итоге я поковырялся и добавил к arr.length + 4
, и все вернуло как надо,но тогда возникает проблема с другими примерами массивов в функции(например этой chunkArrayInGroups(["a", "b", "c", "d"], 2)
) .
function chunkArrayInGroups(arr, size) {
let pre = [];
while(arr.length > 0) {
pre.push(arr.splice(0, size));
}
console.log( arr.length )
return pre;
}
Не стоит использовать splice
. Массивы в js передаются по ссылке, таким образом вы разрушаете исходный массив.
function chunkArrayInGroups(arr, size) {
let chunks = [];
for (let i=0, n=arr.length; i<n; i+=size) {
let chunk = arr.slice(i,i+size);
chunks.push(chunk);
}
return chunks;
}
let res = chunkArrayInGroups([0, 1, 2, 3, 4, 5, 6, 7, 8], 2);
console.log(JSON.stringify(res));
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Делаю аякс запрос, после которого меня значение атрибутаВ DOM всё меняется, как положено
Пишу drag-and-drop с возможностью поворота и ресайза на VueJsСуть работы простая: отслеживаю перемещения мышкой, в соответствии с ними обновляю модель,...
Есть сайт на angular, сайт не мойХочу немного оптимизировать работу с ним для себя