Last active
December 20, 2022 18:37
-
-
Save cshanejennings/bad346deb927f330b0f29dc5c242a585 to your computer and use it in GitHub Desktop.
Javascript array chunking examples
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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