stas.vladlenko 1 year ago
parent
commit
ca6524b096
2 changed files with 226 additions and 0 deletions
  1. 214 0
      HW#8/hw8.js
  2. 12 0
      HW#8/index.html

+ 214 - 0
HW#8/hw8.js

@@ -0,0 +1,214 @@
+// ES6 ==============================================================================
+// a =======================================
+
+
+let a = (...arguments) => alert(arguments)
+// a("Привет")
+// a("Как дела?")
+// a("Как погода?")
+
+
+// cube =======================================
+
+
+let cube =(...arguments) => arguments**=3
+cube(17)
+
+
+// avg2 =======================================
+
+
+let avg2 = (...arguments) => (arguments[0]+arguments[1])/2
+// avg2(7,10)
+
+
+// sum3 =======================================
+
+
+let sum3 = (...arguments) => arguments[0]+(arguments[1] ? arguments[1] : 0)+(arguments[2]?arguments[2]:0)
+// sum3(1,2,3)
+
+
+// intRandom ======================================= 
+
+
+let intRandom = (...arguments) => (Math.round(Math.random() * ((arguments[1]?arguments[1]:0) - arguments[0] ) + arguments[0]))
+// intRandom (0,1) 
+
+
+// greetAll ======================================= 
+
+
+let greetAll = (...arguments) => {
+    for(let i=0; i<arguments.lenght; i++){
+        arguments+=arguments[i]
+    }
+    alert('Hello' +' '+ arguments.join(', '))
+}
+// greetAll('Kate','Vlad','Marina','Sveta','Andrey','Cat','Superman')
+
+
+// sum ======================================= 
+
+
+let sum = (...arguments) =>{
+    let result = 0
+    for(let i=0; i<arguments.length; i++){
+        result+=arguments[i]
+    }
+    return result
+}
+// sum(10,20,40,100)
+
+
+// Union ======================================= 
+
+
+aChoice = () => a("Привет")
+cubeChoice = () => cube(17)
+avg2Choice = () => avg2(7,10)
+sum3Choice = () => sum3(1,2,3)
+intRandomChoice = () => intRandom(0,1)
+greetAllchoice = () => greetAll('Kate','Vlad','Marina','Sveta','Andrey','Cat','Superman')
+sumChoice = () => sum(10,20,40,100)
+
+let taskChoice
+
+let taskChoiceFunc = () => {
+    taskChoice= prompt('Введите название задания: \n a - cube - avg2 - sum3 - intRandom - greetAll - sum')
+    switch(taskChoice?.toLowerCase()){
+        case 'a': aChoice()
+        break;
+        case 'cube': console.log(cubeChoice())
+        break;
+        case 'avg2': console.log(avg2Choice())
+        break;
+        case 'sum3': console.log(sum3Choice())
+        break;
+        case 'intrandom': console.log(intRandomChoice())
+        break;
+        case 'greetall': greetAllchoice()
+        break;
+        case 'sum': console.log(sumChoice())
+    }
+    taskChoice?taskChoiceFunc():false
+}
+taskChoiceFunc()
+
+
+// Union declarative =======================================
+
+
+let taskChoiceTwo = prompt('Введите название задания')
+
+const functionObj = {
+    'a': aChoice,
+    'cube': cubeChoice,
+    'avg2': avg2Choice,
+    'sum3': sum3Choice,
+    'intrandom': intRandomChoice,
+    'greetall': greetAllchoice,
+    'sum': sumChoice
+}
+
+functionObj[taskChoiceTwo.toLowerCase()]()
+
+
+// sort ==============================================================================
+
+
+var persons = [
+    {name: "Иван", age: 17},
+    {name: "Мария", age: 35},
+    {name: "Алексей", age: 73},
+    {name: "Яков", age: 12},
+]
+
+let sort = (arr,key,Boolean) =>
+arr.sort((a,b) => 
+Boolean? (a-b) || (a[key]<b[key] ? -1 : 1)  :  (b-a) || a[key]>b[key] ? -1 : 0
+)
+
+console.log(sort(persons,'name',true))
+console.log(sort(persons,'age',true))
+console.log(sort(persons,'name',false))
+console.log(sort(persons,'age',false))
+console.log(sort(persons,'name'))
+console.log(sort(persons,'age'))
+
+
+// array map ==============================================================================
+
+
+let arr = ["1", {}, null, undefined, "500", 700]
+let arrMap = arr.map((index) => parseInt(index)?Number(index):index)
+
+console.log(arrMap)
+
+
+// array reduce ==============================================================================
+
+
+let arr = ["0", 5, 3, "string", null]
+let arrReduce = arr.reduce((index1,index2) => typeof index2 ==='number' ? index1*index2 : index1,1)
+
+console.log(arrReduce)
+
+
+// object filter ==============================================================================
+
+
+var phone = {
+    brand: "meizu",
+    model: "m2",
+    ram: 2,
+    color: "black",
+};
+
+const filter =(obj,func) =>{
+    for(let key in obj){
+        !func(key,obj[key]) ? delete obj[key] : obj[key]
+    }
+    console.log(obj)
+}
+filter(phone,(key,value) => key == "brand" || value == 2)
+
+
+// object map ==============================================================================
+
+
+const map =(obj,func) => {
+    let result={}
+        for (let key in obj){
+            func(key,obj[key]) ? obj : result[key+'_'] = obj[key]+'$'
+    }
+    console.log(result)
+}
+
+
+map({name: "Иван", age: 17},function(key,value){
+    var result = {};
+    result[key+"_"] = value + "$";
+    return
+
+}) //должен вернуть {name_: "Иван$", age_: "17$"}
+
+
+// Sum ==============================================================================
+
+
+let result = 0
+
+const sum = (start,step,finish) => {
+
+    if (finish===0){
+        return console.log(result)
+    }
+
+    else{
+        result+=start
+        sum(start+step,step,finish-1)
+    }
+}
+
+sum(7,5,15)

+ 12 - 0
HW#8/index.html

@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <script src="hw8.js"></script>
+</body>
+</html>