-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
41 lines (36 loc) · 1.02 KB
/
index.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
const names = ["Halo", "Angel", "Nyoman", "Ketut", "Aisyah"];
// TODO: Fungsi utama
// Menerima 2 parameter: list nama dan callback sort
// Mengembalikan array of string dengan format:
// "1. Nama"
// "2. Nama"
// ...
const sorter = (names, operator) => {
const operatorResult = operator(names);
const result = [];
for (let i = 0; i < operatorResult.length; i++) {
result.push(`${i + 1}. ${operatorResult[i]}`);
}
return result;
};
// TODO: Fungsi untuk mengurutkan array of string secara ascending
// mengembalikan array yang sudah diurutkan
const sortAscending = (names) => {
return names.sort();
};
// TODO: Fungsi untuk mengurutkan array of string secara descending
// mengembalikan array yang sudah diurutkan
const sortDescending = (names) => {
return names.reverse();
};
// ! JANGAN DIMODIFIKASI
(function main() {
console.log(sorter?.(names, sortAscending)?.join("\n"));
console.log(sorter?.(names, sortDescending)?.join("\n"));
})();
module.exports = {
sorter,
sortAscending,
sortDescending,
names,
};