
- Javascript Basics Tutorial
- Javascript - Home
- Javascript - Overview
- Javascript - Syntax
- Javascript - Enabling
- Javascript - Placement
- Javascript - Variables
- Javascript - Operators
- Javascript - If...Else
- Javascript - Switch Case
- Javascript - While Loop
- Javascript - For Loop
- Javascript - For...in
- Javascript - Loop Control
- Javascript - Functions
- Javascript - Events
- Javascript - Cookies
- Javascript - Page Redirect
- Javascript - Dialog Boxes
- Javascript - Void Keyword
- Javascript - Page Printing
- JavaScript Objects
- Javascript - Objects
- Javascript - Number
- Javascript - Boolean
- Javascript - Strings
- Javascript - Arrays
- Javascript - Date
- Javascript - Math
- Javascript - RegExp
- Javascript - HTML DOM
- JavaScript Advanced
- Javascript - Error Handling
- Javascript - Validations
- Javascript - Animation
- Javascript - Multimedia
- Javascript - Debugging
- Javascript - Image Map
- Javascript - Browsers
- JavaScript Useful Resources
- Javascript - Questions And Answers
- Javascript - Quick Guide
- Javascript - Functions
- Javascript - Resources
Chunking an array in JavaScript
We are required to write a function chunk() that takes in an array arr of string / number literals as the first argument and a number n as second argument.
We are required to return an array of n subarrays, each of which contains at most arr.length / n elements. And the distribution of elements should be like this −
The first element goes in the first subarray, second in second, third in third and so on. Once we have one element in each subarray, we again start with filling the first subarray with its second element. Similarly, when all subarrays have two elements only after that we fill the third element in the first array and so on.
For example −
// if the input array is: const input = [1, 2, 3, 4, 5, 6]; //then the output should be: const output = [ [1, 4], [2, 5], [3, 6] ];
Let’s write the code for this function, we will Array.prototype.reduce() method over the original array to construct the desired array. The code for this will be −
Example
const input = [1, 2, 3, 4, 5, 6, 7, 8, 9]; const chunk = (arr, size) => { return arr.reduce((acc, val, ind) => { const subIndex = ind % size; if(!Array.isArray(acc[subIndex])){ acc[subIndex] = [val]; } else { acc[subIndex].push(val); }; return acc; }, []); }; console.log(chunk(input, 4));
Output
The output in the console will be −
[ [ 1, 5, 9 ], [ 2, 6 ], [ 3, 7 ], [ 4, 8 ] ]
- Related Articles
- Chunking array within array in JavaScript
- Chunking arrays in JavaScript
- Flatten an array in JavaScript.
- Reorder an array in JavaScript
- JavaScript - filtering array with an array
- Searching an element in Javascript Array
- Looping through an array in Javascript
- Creating an associative array in JavaScript?
- Adding an element in an array using Javascript
- Removing an element from an Array in Javascript
- Rotating an array - JavaScript
- Dividing an array – JavaScript
- Sort an array according to another array in JavaScript
- JavaScript in filter an associative array with another array
- Sorting an array of objects by an array JavaScript
