partyzanx
@partyzanx

Как сделать функцию разбивки массива на массивы более коротко?

function chunk(arr, size = 1) {}
в arr вписывается исходный массив, а в size - на массивы какой длинны его разбить

chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]
 
 chunk(['a', 'b', 'c', 'd'], 3);
// => [['a', 'b', 'c'], ['d']]


Я сделал такой код, но он слишком длинный


Прошу помочь сделать другой код более коротко и более искусно, чтобы помочь мне лучше изучить JS
Приступить
  • Вопрос задан
  • 172 просмотра
Решения вопроса 4
@i1yas
function chunk(array, size = 1) {
  const list = [];
  let rest = array;
  while(rest.length > 0) {
    list.push(rest.slice(0, size));
    rest = rest.slice(size);
  }
  return list;
}
Ответ написан
Комментировать
longclaps
@longclaps
function chunk(arr, size = 1) {
    let res = [];
    for (let i = 0, j = size; i < arr.length; i = j, j += size)
        res.push(arr.slice(i, j));
    return res;
}
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
Гуглили? Например, несколько вариантов решения (см. комменты).
Ответ написан
Комментировать
NeiroNx
@NeiroNx
Программист
var chunk = (a,n)=>{var c,b;for(c=[];a.length>0;c.push(b))for(b=[];b.length<n&&a.length>0;)b.push(a.shift());return c;}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы