scrimba
Solution for day 3 of #javascriptmas
Go Pro!Bootcamp

Bootcamp

Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

Solution for day 3 of #javascriptmas
AboutCommentsNotes
Solution for day 3 of #javascriptmas
Expand for more info
main.js
run
preview
console
function chunkyMonkey(values, size) {
let matrix = [];
if (size >= values.length) {
matrix.push(values);
} else {
for (let i = 0; i < values.length; i += size) {
let subarr = values.slice(i, i + size);
console.log("subarr>>>", i, size, values.length, subarr);
matrix.push(subarr);
}
}
return matrix;
}

/**
* Test Suite
*/
describe('chunkyMonkey()', () => {
it('returns a 2d array containing one subarray with all values if values length is smaller than size', () => {
const values = ["a"];
const size = 2;
const result = chunkyMonkey(values, size);
console.log("result: ", result);
expect(result).toEqual([["a"]]);
});
it('returns a 2d array containing one subarray with all values if values length is equal to size', () => {
const values = ["a", "b"];
const size = 2;
const result = chunkyMonkey(values, size);
console.log("result: ", result);
expect(result).toEqual([["a", "b"]]);
});
it('returns a 2d array containing 2 subarrays of size n if values length is equal to 2n', () => {
const values = ["a", "b", "c", "d"];
const size = 2;
const result = chunkyMonkey(values, size);
console.log("result: ", result);
expect(result).toEqual([["a", "b"], ["c", "d"]]);
});

it('returns a 2d array containing one subarray of size n followed by a subarray of remainder if values length is less than 2n', () => {
const values = [0, 1, 2, 3, 4, 5];
const size = 4;
const result = chunkyMonkey(values, size);
console.log("result: ", result);
expect(result).toEqual([[0, 1, 2, 3], [4, 5]]);
});
it('returns a 2d array containing x subarrays of size n followed if values contains exaclty x*n elements', () => {
const values = [0, 1, 2, 3, 4, 5];
const size = 2;
const result = chunkyMonkey(values, size);
console.log("result: ", result);
expect(result).toEqual([[0, 1], [2, 3], [4, 5]]);
});
it('returns a 2d array containing x-1 subarrays of size n followed by a subarray of remainder if values contains less than x*n elements', () => {
const values = [0, 1, 2, 3, 4];
const size = 2;
const result = chunkyMonkey(values, size);
console.log("result: ", result);
expect(result).toEqual([[0, 1], [2, 3], [4]]);
});
});
Console
/403.html
LIVE