Skip to content

Instantly share code, notes, and snippets.

@SerhiiLihus
Last active December 2, 2015 14:29
Show Gist options
  • Save SerhiiLihus/a898e6ab4e5031a6a32f to your computer and use it in GitHub Desktop.
Save SerhiiLihus/a898e6ab4e5031a6a32f to your computer and use it in GitHub Desktop.
Chunky Monkey
// Bonfire: Chunky Monkey
// Author: @serhiilihus
// Challenge: http://www.freecodecamp.com/challenges/bonfire-chunky-monkey?solution=function%20chunk(arr%2C%20size)%20%7B%0A%20%20var%20bigArr%20%3D%20%5B%5D%3B%0A%20%20var%20smallArr%3B%0A%20%20%20%20%20for%20(%20var%20i%20%3D%200%20%3B%20i%20%3C%20Math.round(arr.length%20%2F%20size)%20%3B%20i%2B%2B%20)%20%7B%0A%20%20%20%20%20%20%20%20smallArr%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20%20if%20(%20i%20*%20size%20%2B%20size%20%3E%20arr.length%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20size%20%3D%20(i%20*%20size%20%2B%20size%20)%20-%20arr.length%3B%0A%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20for%20(%20var%20j%20%3D%20i%20*%20size%20%3B%20j%20%3C%20i%20*%20size%20%2B%20size%20%3B%20j%2B%2B%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20smallArr.push(arr%5Bj%5D)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20bigArr.push(smallArr)%3B%0A%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%7D%0A%20%20return%20bigArr%3B%0A%7D%0A%0Achunk(%5B%22a%22%2C%20%22b%22%2C%20%22c%22%2C%20%22d%22%5D%2C%202)%3B%0A
// Learn to Code at Free Code Camp (www.freecodecamp.com)
function chunk(arr, size) {
var bigArr = [];
var smallArr;
for ( var i = 0 ; i < Math.round(arr.length / size) ; i++ ) {
smallArr = [];
if ( i * size + size > arr.length ) {
size = (i * size + size ) - arr.length;
} else {
for ( var j = i * size ; j < i * size + size ; j++ )
smallArr.push(arr[j]);
bigArr.push(smallArr);
}
}
return bigArr;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment