// Задание1: Используя перебор массива arguments циклом for, сделайте функцию, которая складывает любое количество параметров function add() { let sum = 0; for (const argument of arguments) { sum += argument }; console.log(sum); } add(1, 2, 3, 4, 5, 6, 7, 8, 9); add(30, 33, 45, 56); // Задание2: перепишите функции выше в стиле ES5 (function ....) // var sqr = x => x*x //один параметр, скобки не нужны // alert(sqr(2)) // var mul = (x,y) => x*y //два параметра - нужны скобки // alert(mul(2,5)) // var objectCreator = (x,y) => ({x, y}) //создает объект {x: x, y: y}. Если забыть скобки - то JS воспримет {x,y} как блок кода, и без return вернет undefined // console.log(objectCreator(4,5)) // var longFunc = (x,y) => { //почти обычная функция // let result = prompt(x,y) // return result; // } // longFunc('check', 'text') function sqr(x) { return x * x }//один параметр, скобки не нужны alert(sqr(2)) function mul(x, y) { return x * y }//два параметра - нужны скобки alert(mul(2,5)) function objectCreator(x, y) { return( { x, y }) } //создает объект {x: x, y: y}. Если забыть скобки - то JS воспримет {x,y} как блок кода, и без return вернет undefined console.log(objectCreator(4,5)) function longFunc (x,y) { //почти обычная функция let result = prompt(x,y) return result; } longFunc('check', 'text') // HW-1 a // Напишите функцию a, которая просто является коротким именем для alert.Смотрите пример с d(), // которая является коротким именем для debugger из материала лекции function a() { alert(...arguments); } a("Привет!") // вызывает alert("Привет!") // HW-2 cube // Напишите функцию cube, которая возвращает число в третьей степени: function cube() { const [b] = [...arguments]; return b * b * b; } console.log(`cube(4)=${cube(4)}`); // HW-3 avg2 // Напишите функцию avg2, которая рассчитывает среднюю для двух чисел: // формула для подсчета среднего: (a + b) / 2 //avg2(1,2) // возвращает 1.5 //avg2(10,5) // возвращает 7.5 // const avg2 = (a, b) => (a + b) / 2; function avg2() { const [a, b] = [...arguments]; console.log((a + b) / 2); return (a + b) / 2 }; console.log(`avg2(1,2)=${avg2(1,2)}` ) console.log(`avg2(10,5)=${avg2(10,5)}`) // HW-4 sum3 // Напишите функцию sum3 для суммирования 3 чисел: // Обратите внимание, что sum3 от двух параметров тоже работает корректно. function sum3() { const [a = 0, b = 0, c = 0] = [...arguments]; console.log(a+b+c); return a + b + c; }; console.log(`sum3(1,2,3)=${sum3(1,2,3)}`) // => 6 console.log(`sum3(5,10,100500)=${sum3(5,10,100500)}`) // => 100515 console.log(`sum3(5,10)=${sum3(5,10)}`) // => 15 // HW-5 intRandom // Напишите функцию intRandom, которая принимает два параметра: нижнюю и верхнюю границу, // и возвращает целое случайное число из этого диапазона включительно: // Обратите внимание, что если передан один параметр(intRandom(10) в примере выше), // то функция работает как будто первый параметр равен 0, а переданный параметр становится вторым параметром(intRandom(0, 10)) // Используйте умножение для расширения значения встроенной функции Math.random c диапозона 1, // сложениe для смещения результата на первый параметр, и Math.round для округления результата function intRandom() { let [min=0, max=0] = [...arguments]; (arguments.length === 1) && (max = min) && (min = 0); let result; console.log(result = Math.round(Math.random() * (max - min) + min)); return result; } intRandom(2,15) // возвращает целое случайное число от 2 до 15 (включительно) intRandom(-1,-1) // вернет -1 intRandom(0,1) // вернет 0 или 1 intRandom(10) // вернет 0 до 10 включительно // HW-6 greetAll // Сделайтей функцию, которая приветствует всех, кто передан в качестве параметров. // Вам поможет arguments и for function greetAll() { let persons=''; for (const argument of arguments) { persons += argument + ', ' }; alert(`Hello ${persons.slice(0, -2)}`) } greetAll("Superman") // выводит alert "Hello Superman" greetAll("Superman", "SpiderMan") // выводит alert "Hello Superman, SpiderMan" greetAll("Superman", "SpiderMan", "Captain Obvious") // выводит alert "Hello Superman, SpiderMan, Captain Obvious" // sum // Напишите функцию sum, которая сумирует любое количество параметров: Используйте псевдомассив arguments для получения всех параметров, // и for для итерирования по нему function sum() { let result = 0; for (const argument of arguments) { result += argument }; console.log(`sum=${result}`); return result; } sum(1) // => 1 sum(2) // => 2 sum(10,20,40,100) // => 170 // Union // Всё предыдущие функции и примеры с ними объедините в функции, которые вызывайте в switch по имени задания: function aSample(){ a("Привет!") // вызывает alert("Привет!") } function cubeSample(){ cube(5) // => 125 } function avg2Sample() { avg2(10, 5) } function sum3Sample(){ sum3(5,10) } function intRandomSample() { intRandom(10) // вернет 0 до 10 включительно } function greetAllSample(){ greetAll("Superman", "SpiderMan", "Captain Obvious") } function sumSample(){ sum(10,20,40,100) } var sample = prompt("Введите название задания"); (function () { switch (sample.toLowerCase()) { case "a": aSample(); break; case "cube": cubeSample() break; case "avg2": avg2Sample(); break; case "sum3": sum3Sample(); break; case "intRandom": intRandomSample(); break; case "greetAll": greetAllSample(); break; case "sum": sumSample(); break; } } )(); // Union declarative // Используйте ассоциативный массив вместо switch const funcObj = { 'a': function aSample() { a("Привет!")}, 'cube': function cubeSample() { cube(5) }, 'avg2': function avg2Sample() {avg2(10, 5) }, 'sum3': function sum3Sample() {sum3(5, 10) }, 'intrandom': function intRandomSample() {intRandom(10)}, 'greetall': function greetAllSample() { greetAll("Superman", "SpiderMan", "Captain Obvious") }, 'sum': function sumSample() {sum(10, 20, 40, 100)} } var sample2 = prompt("Введите название задания еще раз"); (function () {const key = sample2.toLowerCase(); funcObj[key]() })();