//ДЗ: Функции и области видимости //Анализ //Проанализируйте свои предыдущие ДЗ на предмет повторяющихся действий и придумайте названия, //параметры и возвращаемое значение для функций в этих случаях //Напишите функцию a, которая просто является коротким именем для alert. Смотрите пример //с d(), которая является коротким именем для debugger из материала лекции function greetings(greetings:string) { alert(greetings) } // greetings("Привет!") // вызывает alert("Привет!") //cube function cube(number: number) { return Math.pow(number,3) } // console.log(cube(2)) //avg2 //Напишите функцию avg2, которая рассчитывает среднюю для двух чисел: //формула для подсчета среднего: (a + b) / 2 //напишите функцию тут //avg2(1,2) // возвращает 1.5 //avg2(10,5) // возвращает 7.5 const avgOfTwo = (a: number, b: number) => (a + b) / 2 // console.log(avgOfTwo(1,2)) // console.log(avgOfTwo(10,5)) //sum3 //Напишите функцию sum3 для суммирования 3 чисел: //Обратите внимание, что sum3 от двух параметров тоже работает корректно. //sum3(1,2,3) // => 6 //sum3(5,10,100500) // => 100515 //sum3(5,10) // => 15 const sumThree = (a: number = 0, b: number = 0, c: number = 0) => (a + b + c) // console.log(sumThree(1,2,3)) // console.log(sumThree(5,10,100500)) // console.log(sumThree(5, 10)) //intRandom //Напишите функцию intRandom, которая принимает два параметра: нижнюю и верхнюю границу, и возвращает целое //случайное число из этого диапазона включительно: //Обратите внимание, что если передан один параметр (intRandom(10) в примере выше), то функция работает //как будто первый параметр равен 0, а переданный параметр становится вторым параметром(intRandom(0, 10)) //Используйте умножение для расширения значения встроенной функции Math.random c диапозона 1, сложениe для //смещения результата на первый параметр, и Math.round для округления результата //intRandom(2,15) // возвращает целое случайное число от 2 до 15 (включительно) //intRandom(-1,-1) // вернет -1 //intRandom(0,1) // вернет 0 или 1 //intRandom(10) // вернет 0 до 10 включительно const intRandom = (min: number = 0, max?: number) => Math.round(Math.random() * ((max ? max : min) - (max ? min : 0)) + (max ? min : 0)) // console.log(intRandom(2,15)) // console.log(intRandom(-1,-1)) // console.log(intRandom(0,1)) // console.log(intRandom(10)) //greetAll //Сделайтей функцию, которая приветствует всех, кто передан в качестве параметров. //Вам поможет arguments и for //greetAll("Superman") // выводит alert "Hello Superman" //greetAll("Superman", "SpiderMan") // выводит alert "Hello Superman, SpiderMan" //greetAll("Superman", "SpiderMan", "Captain Obvious") // выводит alert "Hello Superman, SpiderMan, Captain Obvious" const greetAllDeclaration = function () { for (const arg of arguments) { console.log(`Hello darling ${arg} from function declaration`) } } // greetAllDeclaration("Superman") // greetAllDeclaration("Superman", "SpiderMan") // greetAllDeclaration("Superman", "SpiderMan", "Captain Obvious") const greetAllArrow = function (...argumentsArr:string[]) { for (const arg of argumentsArr) { console.log(`Hello darling ${arg} from arro function`) } } // greetAllArrow("Superman") // greetAllArrow("Superman", "SpiderMan") // greetAllArrow("Superman", "SpiderMan", "Captain Obvious") //sum //Напишите функцию sum, которая сумирует любое количество параметров: Используйте псевдомассив //arguments для получения всех параметров, и for для итерирования по нему //sum(1) // => 1 //sum(2) // => 2 //sum(10,20,40,100) // => 170 const sumDeclaration = function () { let sum = 0; for(const arg of arguments ){ sum +=arg } return sum } // sumDeclaration(1) // sumDeclaration(2) // sumDeclaration(10,20,40,100) const sumArrow = function (...argumentsArr:number[]) { let sum = 0; for(const arg of argumentsArr ){ sum +=arg } return sum } // sumArrow(1) // sumArrow(2) // sumArrow(10,20,40,100) //Union //Всё предыдущие функции и примеры с ними объедините в функции, которые вызывайте в switch по имени задания: const eternalSample = () => { const sample = prompt("Введите название задания") !sample&&eternalSample() switch (sample.toLowerCase()){ case "a": greetings('Gorge') break; case "cube": console.log(cube(2)) break; case "avg2": console.log(avgOfTwo(1, 2)) break; case "sum3": console.log(sumThree(1, 2, 3)) break; case "intrandom": console.log(intRandom(2, 15)) break; case "greetall": greetAllArrow("Superman", "SpiderMan") break; case "sum": console.log(sumArrow(10, 20, 40, 100)) break; default: console.log('Whoopps'); } eternalSample() } // eternalSample() //Union declarative //made it but withou invoking , belive me id works const associativeArr = new Map() associativeArr.set("a",greetings) associativeArr.set("cube",cube) associativeArr.set("avg2",avgOfTwo) associativeArr.set("sum3",sumThree) associativeArr.set("intrandom",intRandom) associativeArr.set("greetall",greetAllArrow) associativeArr.set("sum", sumArrow) const eternalSampleAssociativeArr = () => { const sample = prompt("Введите название задания") !sample && eternalSampleAssociativeArr() const getValue = associativeArr.get(sample.toLocaleLowerCase()) getValue ?console.log(getValue):console.log('Whoopps>Try again and writy more exat!'); eternalSampleAssociativeArr() } // eternalSampleAssociativeArr()