Преглед изворни кода

additional task done, all tasks now wrapped up in switch. Redundant .toLocaleLowerCase() changed to .toLowerCase()

miskson пре 2 година
родитељ
комит
1b9c82bc78
1 измењених фајлова са 281 додато и 255 уклоњено
  1. 281 255
      hw3/script2.js

+ 281 - 255
hw3/script2.js

@@ -1,273 +1,299 @@
-// switch: sizes
-let usSize = [
-    {
-        number: [6],
-        men: 'S',
-        woman:['XXS']
-    },
-    {
-        number: [8, 10],
-        men: 'M',
-        woman:['XXS', 'XS']
-    },
-    {
-        number: [12, 14],
-        men: 'L',
-        woman:['S', 'M']
-    },
-    {
-        number: [16, 18],
-        men: 'XL',
-        woman:['L','XL']
-    },
-    {
-        number: [20, 22],
-        men: 'XXL',
-        woman:['XXL', 'XXXL']
-    },
-]
-
-let rusSize = prompt('Введите НАШ формат размера для переводa на на Американский формат','')
-
-switch(+rusSize && +rusSize >= 40 && +rusSize <= 56) {
-    case true:
-        rusSize = +rusSize
-        let flag = 0
-
-        switch(rusSize % 2 !== 0) {
-            case true:
-                rusSize--
-                flag++
-        }
-
-        for(let i = 0; i < usSize.length; i++) {
-            let temp = usSize[i].number.findIndex(element => { return element === (rusSize - 34)})
-            switch( temp >= 0) {
+//while(true) {
+    switch(prompt('input task name:', '')) {
+        case 'switch: sizes':
+            //switch: sizes
+            let usSize = [
+                {
+                    number: [6],
+                    men: 'S',
+                    woman:['XXS']
+                },
+                {
+                    number: [8, 10],
+                    men: 'M',
+                    woman:['XXS', 'XS']
+                },
+                {
+                    number: [12, 14],
+                    men: 'L',
+                    woman:['S', 'M']
+                },
+                {
+                    number: [16, 18],
+                    men: 'XL',
+                    woman:['L','XL']
+                },
+                {
+                    number: [20, 22],
+                    men: 'XXL',
+                    woman:['XXL', 'XXXL']
+                },
+            ]
+            
+            let rusSize = prompt('Введите НАШ формат размера для переводa на на Американский формат','')
+            console.log(isNaN(rusSize))
+            switch(!isNaN(rusSize) && +rusSize >= 40 && +rusSize <= 56) {
                 case true:
-                        alert(`
-                            ${rusSize+flag}-й размер в американском формате:
-                            +---------------------------------------+
-                                Размер: ${usSize[i].number[temp]}
-                                Мужчины: ${usSize[i].men}
-                                Женщины: ${usSize[i].woman[temp]}
-                            +---------------------------------------+
-                        `)
-                        i = usSize.length
+                    rusSize = +rusSize
+                    let flag = 0
+            
+                    switch(rusSize % 2 !== 0) {
+                        case true:
+                            rusSize--
+                            flag++
+                    }
+            
+                    for(let i = 0; i < usSize.length; i++) {
+                        let temp = usSize[i].number.findIndex(element => { return element === (rusSize - 34)})
+                        switch( temp >= 0) {
+                            case true:
+                                    alert(`
+                                        ${rusSize+flag}-й размер в американском формате:
+                                        +---------------------------------------+
+                                            Размер: ${usSize[i].number[temp]}
+                                            Мужчины: ${usSize[i].men}
+                                            Женщины: ${usSize[i].woman[temp]}
+                                        +---------------------------------------+
+                                    `)
+                                    i = usSize.length
+                                break;
+            
+                            default:
+                                continue;
+                        }
+                    }
+                    break;
+            
+                case false:
+                    alert('Неправильный размер.')
                     break;
-
-                default:
-                    continue;
             }
-        }
-        break;
-
-    case false:
-        alert('Неправильный размер.')
-        break;
-}
-
-//switch: if
-let color = prompt("Введите цвет","");
-switch (color){
-    case "red": document.write("<div style='background-color: red;'>красный</div>");
-    case "black": document.write("<div style='background-color: black; color: white;'>черный</div>");
-                break;
-    case "blue": document.write("<div style='background-color: blue;'>синий</div>");
-    case "green": document.write("<div style='background-color: green;'>зеленый</div>");
-                break;
-    default: document.write("<div style='background-color: gray;'>Я не понял</div>");
-}
-
-if(color === 'red') {
-    document.write("<div style='background-color: red;'>красный</div>");
-    document.write("<div style='background-color: black; color: white;'>черный</div>");    
-} else if(color === 'blue') {
-    document.write("<div style='background-color: blue;'>синий</div>");
-    document.write("<div style='background-color: green;'>зеленый</div>");
-} else if(color === 'green') {
-    document.write("<div style='background-color: green;'>зеленый</div>");
-} else if(color === 'black') {
-    document.write("<div style='background-color: black; color: white;'>черный</div>");
-} else {
-    document.write("<div style='background-color: gray;'>Я не понял</div>");
-}
+            break;
 
-//prompt: or
-let age = prompt('Введите свой возраст', '') || alert('Вы не ввели ничего!')
-if (age && isNaN(age) || age > 200 || age < 0){
-    alert('Вы ввели неверные данные!')    
-} else if(age){
-    age = age = Math.trunc(Number(age))
-    res = new Date().getFullYear() - age
-    alert(`Исходя из введенного вами возраста вы родились в ${res}г. либо ${res-1}г.`)
-}
+        case 'switch: if':
+            let color = prompt("Введите цвет","");
+            // switch (color){
+            //     case "red": document.write("<div style='background-color: red;'>красный</div>");
+            //     case "black": document.write("<div style='background-color: black; color: white;'>черный</div>");
+            //                 break;
+            //     case "blue": document.write("<div style='background-color: blue;'>синий</div>");
+            //     case "green": document.write("<div style='background-color: green;'>зеленый</div>");
+            //                 break;
+            //     default: document.write("<div style='background-color: gray;'>Я не понял</div>");
+            // }
 
-//confirm: or this days
-confirm('шоппинг') || alert('ты-бяка') 
-
-//confirm: if this days
-if(!confirm('шоппинг')) {
-    alert('ты-бяка')
-}
-
-//triple prompt
-let Name = prompt('your Name:','')
-let surname = prompt('your Surname:','')
-let patronymic = prompt('your Patronymic:','')
-alert(`${surname} ${Name} ${patronymic}`)
+            if(color === 'red') {
+                document.write("<div style='background-color: red;'>красный</div>");
+                document.write("<div style='background-color: black; color: white;'>черный</div>");    
+            } else if(color === 'blue') {
+                document.write("<div style='background-color: blue;'>синий</div>");
+                document.write("<div style='background-color: green;'>зеленый</div>");
+            } else if(color === 'green') {
+                document.write("<div style='background-color: green;'>зеленый</div>");
+            } else if(color === 'black') {
+                document.write("<div style='background-color: black; color: white;'>черный</div>");
+            } else {
+                document.write("<div style='background-color: gray;'>Я не понял</div>");
+            }
+            break;
 
-//default: or
-let defaultName = prompt('your Name:','') || 'Иван'
-let defaultSurname = prompt('your Surname:','') || 'Иванов'
-let defaultPatronymic = prompt('your Patronymic:','')  || 'Иванович'
-alert(`${defaultSurname} ${defaultName} ${defaultPatronymic}`)
+        case 'prompt: or':
+            let age = prompt('Введите свой возраст', '') || alert('Вы не ввели ничего!')
+            if (age && isNaN(age) || age > 200 || age < 0){
+                alert('Вы ввели неверные данные!')    
+            } else if(age){
+                age = age = Math.trunc(Number(age))
+                res = new Date().getFullYear() - age
+                alert(`Исходя из введенного вами возраста вы родились в ${res}г. либо ${res-1}г.`)
+            }
+            break;
 
-// default: if
-if(Name) {
-    Name = Name
-} else {
-    Name = 'Ivan'
-}
-if(surname) {
-    surname = surname
-} else {
-    surname = 'Ivanov'
-}
-if (patronymic) {
-    patronymic = patronymic
-} else {
-    patronymic = 'Ivanovich'
-}
+        case 'confirm: or this days':
+            confirm('шоппинг') || alert('ты-бяка')
+            break;
+        
+        case 'confirm: if this days':
+            if(!confirm('шоппинг')) {
+                alert('ты-бяка')
+            }
+            break;
 
-alert(`Triple promt, but using "if else" to add default values:
-    ${surname} ${Name} ${patronymic}`)
+        case 'triple prompt':
+            let Name = prompt('your Name:','')
+            let surname = prompt('your Surname:','')
+            let patronymic = prompt('your Patronymic:','')
+            alert(`${surname} ${Name} ${patronymic}`)
+            break;
 
-//login and password
-if(prompt('login','') === 'admin') {
-    alert('correct login')
-    if(prompt('password','') === 'qwerty') {
-        alert('correct password')
-    } else {
-        alert('wrong password')
-    }
-} else {
-    alert('wrong login')
-}
+        case 'default: or':
+            let defaultName = prompt('your Name:','') || 'Иван'
+            let defaultSurname = prompt('your Surname:','') || 'Иванов'
+            let defaultPatronymic = prompt('your Patronymic:','')  || 'Иванович'
+            alert(`${defaultSurname} ${defaultName} ${defaultPatronymic}`)
+            break;
 
-//currency calc
-function truncateFraction (number) {
-    try {
-        let strNum = String(number).split('.')
-        if(strNum[1].length > 2) {
-            strNum[1] = strNum[1].slice(0, 2)
-        }
-        return Number(strNum.join('.'))
-    } catch (e) {
-        return number
-    }
-}
+        case 'default: if':
+            let NameIf = prompt('your Name:','')
+            let surnameIf = prompt('your Surname:','')
+            let patronymicIf = prompt('your Patronymic:','')
 
-let curr = prompt('type currency: "eur" or "usd"','')
-let transferLog = {
-    initial: 'hrn',
-    to: '',
-    ratios: {
-        sold: {
-            usd: 0.032,
-            eur: 0.037,
-            setUsd: function(value) {
-                this.usd = value
-            },
-            setEur: function(value) {
-                this.eur = value
+            if(NameIf) {
+                NameIf = NameIf
+            } else {
+                NameIf = 'Ivan'
             }
-        },
-        bought: {
-            usd: 0.033,
-            eur: 0.038
-        }
-    }
-}
-
-//currency calc:if
-if(curr) {
-
-    // switch(curr.toLocaleLowerCase()) {
-    //     case 'eur':
-    //         transferLog.to = 'eur'
-    //         confirm('Sell  press "Ok" | Buy press "Cancel"')? transferLog.curr = [transferLog.ratios['sold']['usd'], 'sold'] : transferLog.curr = [transferLog.ratios['bought']['usd'], 'bought']
-    //         break;
-    //     case 'usd':
-    //         transferLog.to = 'usd'
-    //         confirm('Sell  press "Ok" | Buy press "Cancel"')? transferLog.curr = [transferLog.ratios['sold']['eur'], 'sold'] : transferLog.curr = [transferLog.ratios['bought']['eur'], 'bought']
-    //         break;
-    // }
+            if(surnameIf) {
+                surnameIf = surnameIf
+            } else {
+                surnameIf = 'Ivanov'
+            }
+            if (patronymicIf) {
+                patronymicIf = patronymicIf
+            } else {
+                patronymicIf = 'Ivanovich'
+            }
+            
+            alert(`"if else" to add default values:
+            ${surnameIf} ${NameIf} ${patronymicIf}`)
 
+            break;
+        
+        case 'login and password':
+            if(prompt('login','') === 'admin') {
+                alert('correct login')
+                if(prompt('password','') === 'qwerty') {
+                    alert('correct password')
+                } else {
+                    alert('wrong password')
+                }
+            } else {
+                alert('wrong login')
+            }
+            break;
+        
+        case 'currency calc':
+            function truncateFraction (number) {
+                try {
+                    let strNum = String(number).split('.')
+                    if(strNum[1].length > 2) {
+                        strNum[1] = strNum[1].slice(0, 2)
+                    }
+                    return Number(strNum.join('.'))
+                } catch (e) {
+                    return number
+                }
+            }
+            
+            let curr = prompt('type currency: "eur" or "usd"','')
+            let transferLog = {
+                initial: 'hrn',
+                to: '',
+                ratios: {
+                    sold: {
+                        usd: 0.032,
+                        eur: 0.037,
+                        setUsd: function(value) {
+                            this.usd = value
+                        },
+                        setEur: function(value) {
+                            this.eur = value
+                        }
+                    },
+                    bought: {
+                        usd: 0.033,
+                        eur: 0.038
+                    }
+                }
+            }
+            
+            if(curr) {
+            
+                // switch(curr.toLowerCase()) {
+                //     case 'eur':
+                //         transferLog.to = 'eur'
+                //         confirm('Sell  press "Ok" | Buy press "Cancel"')? transferLog.curr = [transferLog.ratios['sold']['usd'], 'sold'] : transferLog.curr = [transferLog.ratios['bought']['usd'], 'bought']
+                //         break;
+                //     case 'usd':
+                //         transferLog.to = 'usd'
+                //         confirm('Sell  press "Ok" | Buy press "Cancel"')? transferLog.curr = [transferLog.ratios['sold']['eur'], 'sold'] : transferLog.curr = [transferLog.ratios['bought']['eur'], 'bought']
+                //         break;
+                // }
+            
+            
+                if(curr.toLowerCase() === 'eur') {
+                    transferLog.to = 'eur'
+                    confirm('Sell  press "Ok" | Buy press "Cancel"')? transferLog.curr = [transferLog.ratios['sold']['usd'], 'sold'] : transferLog.curr = [transferLog.ratios['bought']['usd'], 'bought']
+                }
+                if(curr.toLowerCase() === 'usd') {
+                    transferLog.to = 'usd'
+                    confirm('Sell  press "Ok" | Buy press "Cancel"')? transferLog.curr = [transferLog.ratios['sold']['eur'], 'sold'] : transferLog.curr = [transferLog.ratios['bought']['eur'], 'bought']
+                }
+                
+                if(transferLog.to === 'eur' || transferLog.to === 'usd') {
+                    transferLog.money = prompt('input amount of money to give', '')
+                    if(!+transferLog.money) {
+                        alert('invalid input')
+                    } else {
+                        transferLog.given = Number(transferLog.money)
+                        if(transferLog.curr[1] === 'sold') {
+                            transferLog.money = truncateFraction(transferLog.given / transferLog.curr[0])
+                            transferLog.message = `You've ${transferLog.curr[1]} ${transferLog.given}${transferLog.to} for ${transferLog.money}${transferLog.initial}`
+                
+                        } else if(transferLog.curr[1] === 'bought') {
+                            transferLog.money = truncateFraction(transferLog.given * transferLog.curr[0])
+                            transferLog.message = `You've ${transferLog.curr[1]} ${transferLog.money}${transferLog.to} for ${transferLog.given}${transferLog.initial}`
+                        }  
+                        transferLog.money > 0? alert(transferLog.message) : alert(`Looks like there is too little amount of hrn given to translate to ${transferLog.to}`)
+                    }
+                } else {
+                    alert('invalid input')
+                }
+            } else {
+                alert('No input.')
+            }
+            break;
 
-    if(curr.toLocaleLowerCase() === 'eur') {
-        transferLog.to = 'eur'
-        confirm('Sell  press "Ok" | Buy press "Cancel"')? transferLog.curr = [transferLog.ratios['sold']['usd'], 'sold'] : transferLog.curr = [transferLog.ratios['bought']['usd'], 'bought']
-    }
-    if(curr.toLocaleLowerCase() === 'usd') {
-        transferLog.to = 'usd'
-        confirm('Sell  press "Ok" | Buy press "Cancel"')? transferLog.curr = [transferLog.ratios['sold']['eur'], 'sold'] : transferLog.curr = [transferLog.ratios['bought']['eur'], 'bought']
-    }
-    
-    if(transferLog.to === 'eur' || transferLog.to === 'usd') {
-        transferLog.money = prompt('input amount of money to give', '')
-        if(!+transferLog.money) {
-            alert('invalid input')
-        } else {
-            transferLog.given = Number(transferLog.money)
-            if(transferLog.curr[1] === 'sold') {
-                transferLog.money = truncateFraction(transferLog.given / transferLog.curr[0])
-                transferLog.message = `You've ${transferLog.curr[1]} ${transferLog.given}${transferLog.to} for ${transferLog.money}${transferLog.initial}`
-    
-            } else if(transferLog.curr[1] === 'bought') {
-                transferLog.money = truncateFraction(transferLog.given * transferLog.curr[0])
-                transferLog.message = `You've ${transferLog.curr[1]} ${transferLog.money}${transferLog.to} for ${transferLog.given}${transferLog.initial}`
-            }  
-            transferLog.money > 0? alert(transferLog.message) : alert(`Looks like there is too little amount of hrn given to translate to ${transferLog.to}`)
-        }
-    } else {
-        alert('invalid input')
-    }
-} else {
-    alert('No input.')
-}
+        case 'scissors':
+            let combos = {
+                paper: {
+                    conter: 'scissors'
+                },
+                scissors: {
+                    conter: 'rock'
+                },
+                rock: {
+                    conter: 'paper'
+                }
+            }
+            
+            let user = prompt('rock, paper, scissors?').toLowerCase()
+            
+            if(user === 'rock' || user === 'paper' || user === 'scissors') {
+                let computer = Math.random()
+            
+                if(computer >= 0.6) {
+                    computer = 'scissors'
+                } else if(computer <= 0.3) {
+                    computer = 'paper'
+                } else {
+                    computer = 'rock'
+                }
+                alert(`computer: ${computer}`)
+            
+                if(user === computer) {
+                    alert('TIE')
+                } else {
+                    combos[computer].conter === user ? alert('USER WINS.') : alert('COMPUTER WINS.')
+                }
+            } else {
+                alert('user disqualified! Compuer wins!')
+            }
+            break;
 
-// scissors
-let combos = {
-    paper: {
-        conter: 'scissors'
-    },
-    scissors: {
-        conter: 'rock'
-    },
-    rock: {
-        conter: 'paper'
+        default:
+            alert('no matches found:(')
+            break;
     }
-}
+//}
 
-let user = prompt('rock, paper, scissors?').toLocaleLowerCase()
 
-if(user === 'rock' || user === 'paper' || user === 'scissors') {
-    let computer = Math.random()
-
-    if(computer >= 0.6) {
-        computer = 'scissors'
-    } else if(computer <= 0.3) {
-        computer = 'paper'
-    } else {
-        computer = 'rock'
-    }
-    alert(`computer: ${computer}`)
-
-    if(user === computer) {
-        alert('TIE')
-    } else {
-        combos[computer].conter === user ? alert('USER WINS.') : alert('COMPUTER WINS.')
-    }
-} else {
-    alert('user disqualified! Compuer wins!')
-}