## DEV Community is a community of 665,832 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

# Day 3 of #100DaysOfCode!

Christian Falucho
Passionate about building websites and web applications that can be used by millions of people. I hope to build tools that can help people.

### Today's progressðŸ˜Œ

I completed Basic Algorithm Scripting from freeCodeCamp and let me tell you. It was challenging. I probably spent a good 30-40 mins on one problem statement.

### What I learned

Read up JavaScript documentations from MDN and w3schools. Both resources has been very helpful in learning more about string methods, arrays and just about anything you need to learn. The examples have been quite helpful to get a better idea of what is happening with the code.

I want to talk about a basic algorithm problem I had to solve and how I broke it down.

Problem Statement - Chunky Monkey

Write a function that splits an array (first argument) into groups the length of size (second argument) and returns them as a two-dimensional array.

``````function chunkArrayInGroups(arr, size) {
let newArr = [];

for(let i = 0; i < arr.length; i = i + size){
// 0
// 2 = 0 + 2
// 4 = 2 + 2

newArr.push((arr.slice(i, i + size)))
// 0, 2
// 2, 4
// 4, 6
}
return newArr;
}

chunkArrayInGroups([0, 1, 2, 3, 4, 5], 2)
``````

Let's begin with the function. Below is our function where we take two arguments, an array and size. The size is going to indicate how many elements per sub-array. For instance, `[0, 1, 2, 3, 4, 5], 2` => `[[0,1], [2,3], [4,5]]`

``````function chunkArrayInGroups(arr, size) {
}
``````

Next, we are going to create a new variable where we will store elements in sub-arrays.

``````let newArr = [];
``````

Now, we need to loop through the array. So we are going to create a for loop and iterate through each element. For our increment expression we are going to increment by adding our `size` argument.

``````for(let i = 0; i < arr.length; i = i + size;){
// i = i + size
// 0
// 2 = 0 + 2
// 4 = 2 + 2
}
``````

Let's go ahead and use the `slice()` method to return and extract elements from the array. We can take in two parameters with the slice() method, `slice(start,end)`

``````arr.slice(i, i + size)
// slice(0, 0 + 2) returns [0,1]
// slice(2, 2 + 2) returns [2,3]
// slice(4, 4 + 2) returns [4,5]

// returns elements
``````

We want to push the return elements into our a new array. We can do this by using the `push()` method

``````newArr.push(arr.slice(i, i + size))
``````

Putting it all together.

``````function chunkArrayInGroups(arr, size) {
let newArr = [];

for(let i = 0; i < arr.length; i = i + size){
newArr.push((arr.slice(i, i + size)))
}
return newArr;
}
chunkArrayInGroups([0, 1, 2, 3, 4, 5], 2)

// output:  [[0,1], [2,3], [4,5]]

``````

I broke down every line of code and took my time to understand what each code was doing. This helped me to be able to put it all together at the end.