-
Notifications
You must be signed in to change notification settings - Fork 0
/
p0-w3-e15-groupAnimals-v3.js
38 lines (33 loc) · 1.49 KB
/
p0-w3-e15-groupAnimals-v3.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
//Week-3 Exercise 15 Group Animal
/*
Diberikan sebuah function groupAnimals(arr) yang menerima satu parameter berupa array yang berisi string.
Function akan me-return array multidimensi dimana array tersebut berisikan kategori/kelompok array
yang dikumpulkan sesuai dengan abjad depannya. Abjad harus berurut dari a-z (jika ada).
Untuk kasus ini, anggap saja semua text lowercase.
Contoh, jika animals adalah ["ayam", "kucing", "bebek", "bangau", "zebra"]
maka akan menampilkan output: [ [ "ayam" ], [ "bebek", "bangau" ], [ "kucing ], [ "zebra" ] ]
Urutan hewan dalam array setiap pengelompokan huruf tidak penting.
*/
function groupAnimals(animals) {
var strAlphabet = 'abcdefghijklmnopqrstuvwxyz';
var arrHasil = [];
var arrKel = [];
//perulangan ambil huruf pertama dari array dan simpan data ke variable array penampung
for(var numLoop1=0; numLoop1<strAlphabet.length; numLoop1++) {
var strHurufAwal = strAlphabet[numLoop1];
for(numLoop2=0; numLoop2<animals.length; numLoop2++) {
if(strHurufAwal === animals[numLoop2][0]) {
arrKel.push(animals[numLoop2]);
}
}
if(arrKel.length>0) {
arrHasil.push(arrKel);
arrKel = [];
}
} //end of for
return arrHasil;
}
console.log(groupAnimals(['cacing', 'ayam', 'kuda', 'anoa', 'kancil']));
// [ ['ayam', 'anoa'], ['cacing'], ['kuda', 'kancil'] ]
console.log(groupAnimals(['cacing', 'ayam', 'kuda', 'anoa', 'kancil', 'unta', 'cicak' ]));
// [ ['ayam', 'anoa'], ['cacing', 'cicak'], ['kuda', 'kancil'], ['unta'] ]