forked from TransportVic/TransportVic2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tram-fleet.js
66 lines (55 loc) · 1.83 KB
/
tram-fleet.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
let data = {
SW5: { ac: false, lf: false },
W6: { ac: false, lf: false },
SW6: { ac: false, lf: false },
PCC: { ac: false, lf: false },
W7: { ac: false, lf: false },
W8: { ac: false, lf: false },
Z1: { ac: false, lf: false },
Z2: { ac: false, lf: false },
Z3: { ac: false, lf: false },
A1: { ac: false, lf: false },
A2: { ac: false, lf: false },
B1: { ac: true, lf: false },
B2: { ac: true, lf: false },
C: { ac: true, lf: true },
C2: { ac: true, lf: true },
D1: { ac: true, lf: true },
D2: { ac: true, lf: true },
E1: { ac: true, lf: true },
E2: { ac: true, lf: true },
}
let cache = {}
function getModel(number) {
number = parseInt(number)
if (number <= 100) return 'Z1'
if (number <= 115) return 'Z2'
if (number <= 230) return 'Z3'
if (number <= 258) return 'A1'
if (number <= 300) return 'A2'
if ([856, 888, 925, 928, 946, 957, 959, 961, 981, 983, 1010].includes(number)) return 'W8'
if ([728, 842, 845, 845, 848].includes(number)) return 'SW5'
if (850 <= number && number <= 969) return 'SW6'
if (number === 980 || number === 1041) return 'PCC'
if (970 <= number && number <= 1000) return 'W6'
if (1001 <= number && number <= 1040) return 'W7'
if (number === 2001 || number === 2002) return 'B1'
if (2003 <= number && number <= 2132) return 'B2'
if (3001 <= number && number <= 3036) return 'C'
if (3501 <= number && number <= 3538) return 'D1'
if (5001 <= number && number <= 5021) return 'D2'
if ([5103, 5106, 5111, 5113, 5123].includes(number)) return 'C2'
if (6001 <= number && number <= 6050) return 'E1'
if (6051 <= number && number <= 6100) return 'E2'
return '?'
}
function getModelFromCache(number) {
if (cache[number]) return cache[number]
let model = getModel(number)
cache[number] = model
return model
}
module.exports = {
getModel: getModelFromCache,
data
}