Skip to content

Commit 8025e29

Browse files
committed
add more error checks
1 parent 84b06ff commit 8025e29

File tree

1 file changed

+17
-6
lines changed
  • problemSolvingPractices/problems/p3-ConversionTool

1 file changed

+17
-6
lines changed

problemSolvingPractices/problems/p3-ConversionTool/script.js

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,13 +114,17 @@ function BinaryToDecimal(Binary){
114114

115115
function DeicmalToBinary(Decimal){
116116

117+
// error checks
117118
if (!Decimal) return errorMsg3
118119
if (Decimal.length > 15 || Decimal.length < 7) return errorMsg4;
119120

120121
const chart = [128,64,32,16,8,4,2,1]
121122

122123
const octets = Decimal.split('.')
123124

125+
// more error checks
126+
if (octets.length !== 4) return errorMsg4
127+
124128
if (octets[0].length > 3 || octets[0].length < 1) return errorMsg5
125129
if (octets[1].length > 3 || octets[1].length < 1) return errorMsg5
126130
if (octets[2].length > 3 || octets[2].length < 1) return errorMsg5
@@ -136,9 +140,10 @@ function DeicmalToBinary(Decimal){
136140
let thirdOctet = ''
137141
let fourthOctet= ''
138142

139-
// if octetOne from input includes anyhting thats not a number (like 'h')
140-
// we make octetOne be more that 3 digits (4444) which would return errorMsg6
141-
let octetOne = Number(octets[0]) ? Number(octets[0]) : 4444
143+
let octetOne = Number(octets[0])
144+
145+
// more error checks
146+
if (Number.isNaN(octetOne)) return errorMsg4
142147
if (octetOne < 0 || octetOne > 255) return errorMsg6
143148

144149
for (let i=0; i < chart.length; i++) {
@@ -152,7 +157,9 @@ function DeicmalToBinary(Decimal){
152157
}
153158
}
154159

155-
let octetTwo = Number(octets[1]) ? Number(octets[1]) : 4444
160+
let octetTwo = Number(octets[1])
161+
162+
if (Number.isNaN(octetTwos)) return errorMsg4
156163
if (octetTwo < 0 || octetTwo > 255) return errorMsg6
157164

158165
for (let i=0; i < chart.length; i++) {
@@ -167,7 +174,9 @@ function DeicmalToBinary(Decimal){
167174

168175
}
169176

170-
let octetThree = Number(octets[2]) ? Number(octets[2]) : 4444
177+
let octetThree = Number(octets[2])
178+
179+
if (Number.isNaN(octetThree)) return errorMsg4
171180
if (octetThree < 0 || octetThree > 255) return errorMsg6
172181

173182
for (let i=0; i < chart.length; i++) {
@@ -182,7 +191,9 @@ function DeicmalToBinary(Decimal){
182191

183192
}
184193

185-
let octetFour = Number(octets[3]) ? Number(octets[3]) : 4444
194+
let octetFour = Number(octets[3])
195+
196+
if (Number.isNaN(octetFour)) return errorMsg4
186197
if (octetFour < 0 || octetFour > 255) return errorMsg6
187198

188199
for (let i=0; i < chart.length; i++) {

0 commit comments

Comments
 (0)