The task is to split each element of a string array into different categories.
Example:
Input Array : const input = ['abc', 'def', 'ghi', 'jkl', 'mno', 'pqr', 'stw', 'xyz'] Category Array : const categories = ['a', 'b', 'c'] Split Size : const split_size = 3 Output:[ a: [ 'abc', 'def', 'ghi' ], b: [ 'jkl', 'mno', 'pqr' ], c: [ 'stw', 'xyz' ] ]
Approach:
- Initialize an object that will store the categories in it and also initialize a variable index that will keep the index of the categories.
- Start traversing the array and split it according to the split size.
- Assign the new split array to the given category and increment the index.
The code for the above approach is given below.
Javascript
function split_array(array, categories, split_size) {
// Initialize empty array
const chunks = [];
// Initialize index equal to zero to keep track of categories
const index = 0;
// Traverse the array according to the split size
for (let i = 0; i < array.length; i += split_size) {
// Slicing the split_size array from i
let temp = array.slice(i, i + split_size);
// Assigning the sliced array to the category
chunks[categories[index]] = temp;
// Increment index to keep track of categories
index++;
}
// return the final array
return chunks;
} //input array const input = [ 'abc' , 'def' , 'ghi' , 'jkl' , 'mno' , 'pqr' , 'stw' , 'xyz' ]
//categories array const categories = [ 'a' , 'b' , 'c' ]
const split_size = 3; //split size
//calling the function const output = split_array(input, categories, split_size); console.log(output) //printing the array
|
Output:
[ a: ["abc", "def", "ghi"] b: ["jkl", "mno", "pqr"] c: ["stw", "xyz"] ]