Skip to content

Instantly share code, notes, and snippets.

@cshanejennings
Last active December 20, 2022 18:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cshanejennings/bad346deb927f330b0f29dc5c242a585 to your computer and use it in GitHub Desktop.
Save cshanejennings/bad346deb927f330b0f29dc5c242a585 to your computer and use it in GitHub Desktop.
Javascript array chunking examples
const sample_array = [...Array(100)].map((v,i)=>i);
const chunk_size = 10;
// reuseable reducer: non-destructive
const reduce_array_chunks = (size) => ((chunks, val, i)=> {
if (i % size) { chunks[Math.floor(i / size)].push(val); } else chunks.push([val]);
return chunks;
});
const chunk_reducer = reduce_array_chunks(chunk_size); // reusable function option
const chunked_by_reduce = sample_array.reduce(chunk_reducer, []);
// single line: non-destructive
const chunked_by_map_pure = [...Array(Math.ceil(sample_array.length / chunk_size))].map(_ => sample_array.slice(0,chunk_size));
// single line: empties original array
const chunked_by_map_destructive = [...Array(Math.ceil(sample_array.length / chunk_size))].map(_ => sample_array.splice(0,chunk_size));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment