jsartisan / frontend-challenges

FrontendChallenges is a collection of frontend interview questions and answers. It is designed to help you prepare for frontend interviews. It's free and open source.
https://frontend-challenges.com
27 stars 4 forks source link

86 - Chunk - javascript #89

Open jsartisan opened 3 months ago

jsartisan commented 3 months ago

index.js

export function chunk(array, size) {
  const result = [];

  if (!Array.isArray(array)) throw TypeError("first argument is not an array");

  if (!(typeof size === "number" && size > 0))
    throw TypeError("econd argument is not a positive number");

  for (let i = 0; i < array.length; i++) {
    const last = result.at(-1);
    const current = array[i];

    if (Array.isArray(last) && last.length < size) {
      last.push(current);
      result[result.length - 1] = last;
    } else {
      result.push([current]);
    }
  }

  return result;
}