-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmengelompokkanAngka.js
48 lines (44 loc) · 1.58 KB
/
mengelompokkanAngka.js
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
/*
Logic Challenge - Mengelompokkan Angka
Problem
Diberikan sebuah function mengelompokkanAngka(arr) yang menerima satu parameter berupa array yang berisi angka-angka. Function akan me-return array multidimensi dimana array tersebut berisikan 3 kategori/kelompok:
kelompok pertama (baris pertama) merupakan angka-angka genap
kelompok ke-2 (baris ke-2) merupakan angka-angka ganjil
kelompok ke-3 (baris ke-3) merupakan angka-angka kelipatan 3
Contoh jika arr inputan adalah [45, 20, 21, 2, 7] maka output: [ [ 20, 2 ], [ 7 ], [ 45, 21 ] ]
*/
function mengelompokkanAngka(arr) {
var genap = [];
var ganjil = [];
var tampung = [];
var a;
var b;
var result =[];
for (var i = 0; i < arr.length; i++){
if (arr[i] % 3 === 0){
a = arr.splice(i,1, arr[i])
tampung.push (a);
} else if (arr[i] % 2 === 0){
genap.push(arr[i]);
} else {
ganjil.push(arr[i]);
}
// console.log (i, genap)
// console.log (i, ganjil)
// console.log (i, tampung)
}
if (tampung != []){
var kelipatan3 = [];
for (var j = 0; j < tampung.length; j++) {
b = Number(tampung[j]);
kelipatan3.push(b);
}
}
result = [genap, ganjil, kelipatan3];
return result;
}
// TEST CASES
console.log(mengelompokkanAngka([2, 4, 6])); // [ [2, 4], [], [6] ]
console.log(mengelompokkanAngka([1, 2, 3, 4, 5, 6, 7, 8, 9])); // [ [ 2, 4, 8 ], [ 1, 5, 7 ], [ 3, 6, 9 ] ]
console.log(mengelompokkanAngka([100, 151, 122, 99, 111])); // [ [ 100, 122 ], [ 151 ], [ 99, 111 ] ]
console.log(mengelompokkanAngka([])); // [ [], [], [] ]