-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconversionFunctions.js
More file actions
118 lines (113 loc) · 2.57 KB
/
conversionFunctions.js
File metadata and controls
118 lines (113 loc) · 2.57 KB
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
108
109
110
111
112
113
114
115
116
117
118
export const morseLibrary = {
a: '.-',
b: '-...',
c: '-.-.',
d: '-..',
e: '.',
f: '..-.',
g: '--.',
h: '....',
i: '..',
j: '.---',
k: '-.-',
l: '.-..',
m: '--',
n: '-.',
o: '---',
p: '.--.',
q: '--.-',
r: '.-.',
s: '...',
t: '-',
u: '..-',
v: '...-',
w: '.--',
x: '-..-',
y: '-.--',
z: '--..',
1: '.----',
2: '..---',
3: '...--',
4: '....-',
5: '.....',
6: '-....',
7: '--...',
8: '---..',
9: '----.',
0: '-----',
',': '--..--',
'.': '.-.-.-',
'?': '..--..',
'!': '-.-.--',
'"': '.-..-.',
':': '---...',
"'": '.----.',
'-': '-...-',
'(': '-.--.',
')': '-.--.-',
};
export const convertToEng = (string) => {
let morseArray = string.split(' ');
let englishArray = [];
for (let item of morseArray) {
//Handling new lines
if (item.includes('\n')) {
let temp = item.split('\n').join(' | ').split(' ');
console.log(temp);
for (let properties of temp) {
console.log(properties);
if (properties == '|' || properties == '/') {
englishArray.push(' ');
} else if (properties == '') {
continue;
} else if (
Object.keys(morseLibrary).find(
(key) => morseLibrary[key] === properties
) == undefined
) {
return `(${properties} is not in defined in this library)`;
} else {
englishArray.push(
Object.keys(morseLibrary).find(
(key) => morseLibrary[key] === properties
)
);
}
}
//Standard behaviour
} else {
if (item == '|' || item == '/') {
englishArray.push(' ');
} else if (
Object.keys(morseLibrary).find((key) => morseLibrary[key] === item) ==
undefined
) {
return `(${item} is not defined in this morse library)`;
} else {
englishArray.push(
Object.keys(morseLibrary).find((key) => morseLibrary[key] === item)
);
}
}
}
return englishArray.join('');
};
export const convertToMorse = (string) => {
if (typeof string == 'number') {
string = string.toString();
}
let array = string.toLowerCase().split('');
let morseArray = [];
for (let i = 0; i < array.length; i++) {
if (array[i] == ' ') {
morseArray.push('| ');
} else if (array[i] == '\n') {
morseArray.push('\n');
} else if (morseLibrary[array[i]] == null) {
return `(${array[i]} is not defined in this library)`;
} else {
morseArray.push(`${morseLibrary[array[i]]} `);
}
}
return morseArray.join('').trim();
};