OBJECTIVE
"Chunky Monkey" Problem: Create a new, multi-dimensional array from a given array ('arr') and number ('size'). The new, multi-dimensional array should create array lengths equal to the 'size' variable.
EXAMPLE #1
chunk(['a', 'b', 'c', 'd'], 2);
var answer = [];
function chunk(arr,size){
//do something
};
return answer
EXPECTED ANSWER #1
answer = [['a','b'],['c','d']];
EXAMPLE #2
Below is an example when there is an odd number of elements/sizes - In a situation like this, the expected result is to have a "remainder" group.
chunk(['a', 'b', 'c', 'd'], 3);
var answer = [];
function chunk(arr,size){
//do something
};
return answer
EXPECTED ANSWER #2
answer = [['a','b','c'],['d']];
MY PSEUDO-CODE / APPROACH
var final = [];
function chunk(arr, size) {
//extract number of elements from 'arr' = 'size'
var extract = function{
//HELP! [INSERT LOGIC]
};
//add extracted elements to 'group' array
var group = [extract];
//push 'group' to 'final' array for multidimensional array
final.push(group);
//return final'
return final;
}
chunk(['a', 'b', 'c', 'd'], 2);
QUESTIONS
You can use a recursive function:
function chunk(arr, size) {
if(!arr.length) return [];
return [arr.slice(0, size)].concat(chunk(arr.slice(size), size));
}
Or a loop:
function chunk(arr, size) {
arr = arr.slice();
var ret = [];
while(arr.length) ret.push(arr.splice(0, size));
return ret;
}
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments