-
Notifications
You must be signed in to change notification settings - Fork 0
/
lat18.js
107 lines (96 loc) · 2.38 KB
/
lat18.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*
================
ASIAN GAMES GANJIL GENAP
================
description: Sebuah fungsi yang akan mengembalikan berapa banyak jumlah pelanggaran lalu lintas
yang terjadi saat asian games berlangsung. Pelanggaran akan terhitung apabila
ada plat mobil yang melintas pada tanggal tertentu dengan nomor plat yang tidak
sama dengan aturan ganjil genap
rules:
1. tidak boleh menggunakan built in function .filter(), .map(), .reduce()
2. Function menerima parameter berupa tanggal dan data kendaraan yang melintas
3. Function hanya akan bisa membaca dari tanggal 1 sampai 31 ( asumsi setiap bulan memiliki range tanggal tersebut )
4. Contoh membaca nomor plat kendaraan adalah misal B 1234 HAHA, berarti yang dilihat cukup
angka paling belakang dari 1234 berarti 4, berati nomor plat mobil ini termasuk genap
examples:
JIKA INPUT DATA KENDARAAN = [{
plat: 'B 1234 ABC',
type: 'Mobil'
}, {
plat: 'A 2457 HE',
type: 'Motor'
}, {
plat: 'Z 999 ERT',
type: 'Mobil'
}]
DAN INPUT TANGGAL ADALAH = 18
MAKA OUTPUTNYA ADALAH 1, yaitu hanya plat mobil Z 999 ERT karena merupakan jenis kendaraan
mobil dan memiliki plat genap
*/
function ganjilGenapAsianGames ( date, data ) {
var count=0
if (date<=0||date>=31) return "Invalid Date"
for (var i = 0; i < data.length; i++) {
if (data[i].type==="Mobil") {
var plating=data[i].plat.split(" ")
if (plating[1]%2!==date%2) {
count++
}
}
}
return count
}
console.log(ganjilGenapAsianGames(30, [{
plat: 'B 1234 ABC',
type: 'Mobil'
}, {
plat: 'A 2457 HE',
type: 'Motor'
}, {
plat: 'AB 87 RFS',
type: 'Motor'
}, {
plat: 'Z 999 ERT',
type: 'Mobil'
}])) // 1
console.log(ganjilGenapAsianGames(26, [{
plat: 'A 24 HE',
type: 'Mobil'
}, {
plat: 'AB 871 RFS',
type: 'Mobil'
}, {
plat: 'Z 9992 ERT',
type: 'Mobil'
}])) // 1
console.log(ganjilGenapAsianGames(1, [{
plat: 'A 24 WE',
type: 'Mobil'
}, {
plat: 'AB 871 RFS',
type: 'Mobil'
}, {
plat: 'Z 9992 XOXO',
type: 'Mobil'
}])) // 2
console.log(ganjilGenapAsianGames(1, [
{
plat: 'A 2431 HE',
type: 'Motor'
}, {
plat: 'AB 87112 RFS',
type: 'Motor'
}, {
plat: 'Z 999 ERT',
type: 'Motor'
}
])) // 0
//
console.log(ganjilGenapAsianGames(32, [{
plat: 'X 123 HAHA',
type: 'Mobil'
}])) // invalid dates
console.log(ganjilGenapAsianGames(0, [{
plat: 'X 123 HAHA',
type: 'Mobil'
}])) // invalid dates