-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSubArray-Chunks.js
More file actions
51 lines (40 loc) · 988 Bytes
/
SubArray-Chunks.js
File metadata and controls
51 lines (40 loc) · 988 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/*
Given an array and chunk size, convert the array in to
subarrays containing number of elements of chunk sizes
Example:
chunkOfArray([1,2,3,4], 2); // [[1,2],[3,4]]
chunkOfArray([1,2,3,4,5], 2); // [[1,2],[3,4],[5]]
chunkOfArray([1,2,3,4,5], 2); // [[1,2],[3,4],[5]]
*/
function chunkOfArray(arr, chunkSize) {
var newArr = [];
var count = 0;
var subArr = [];
for (let i = 0; i < arr.length; i++) {
count++;
subArr.push(arr[i]);
if (count === chunkSize) {
newArr.push(subArr);
count = 0;
subArr = [];
}
}
newArr.push(subArr);
return newArr;
}
// var arr = [1, 2, 3, 4];
// var arr = [1, 2, 3, 4, 5];
var arr = [1, 2, 3, 4, 5, 6, 7, 8];
console.log(chunkOfArray(arr, 3));
/*
Time Complexity: O(n)
*/
function chunkOfArray2(arr, chunkSize) {
var newArr = [];
while (arr.length !== 0) {
newArr.push(arr.splice(0, chunkSize));
}
return newArr;
}
var arr2 = [1, 2, 3, 4, 5, 6, 7, 8];
console.log(chunkOfArray2(arr2, 3));