소스 검색

HW YB2NKR8B2LL done

Varvara Huza 3 년 전
부모
커밋
7f331bf863
1개의 변경된 파일326개의 추가작업 그리고 0개의 파일을 삭제
  1. 326 0
      Homework_6/main.js

+ 326 - 0
Homework_6/main.js

@@ -0,0 +1,326 @@
+//3 persons
+let a = {
+    name: 'Layne',
+    surname: 'Staley',
+}
+
+let b = {
+    name: 'Varg',
+    surname: 'Vikernes'
+}
+
+let c = {
+    name: 'Alexi',
+    surname: 'Laiho'
+}
+
+//different fields
+a.sex = 'male'
+a.fathername = 'Phil'
+b.project = 'Burzum'
+c.age = 41
+c.project = 'Children of Bodom'
+
+//fields check
+    // let arr = [a, b, c]
+    // for (let i = 0; i < arr.length; i++) {
+    //     if ('sex' in arr[i]) {
+    //         alert(arr[i].sex)
+    //     }
+    //     if ('project' in arr[i]) {
+    //         alert(arr[i].project)
+    //     }
+    //     if ('age' in arr[i]) {
+    //         alert(arr[i].age)
+    //     }
+    //     if ('fathername' in arr[i]) {
+    //         alert(arr[i].fathername)
+    //     }
+    // }
+
+//array of persons
+let persons = [a, b, c, {name: 'James', surname: 'Hetfield', age: 58, fathername: 'Virgil'}]
+
+//loop of persons
+    // for (let i = 0; i < persons.length; i++) {
+    //     console.log(persons[i])
+    // }
+
+//loop of name and surname
+    // for (let i = 0; i < persons.length; i++) {
+    //     console.log(persons[i].name, persons[i].surname)
+    // }
+
+//loop of loop of values
+    // for (let i = 0; i < persons.length; i++) {
+    //     for (let key in persons[i]) {
+    //         console.log(persons[i][key])
+    //     }
+    // }
+
+    // or
+    
+    // for (let i = 0; i < persons.length; i++) {
+    //     for (let [key, value] of Object.entries(persons[i])) {
+    //         console.log(value)
+    //     }
+    // }
+
+//fullName
+for (let i = 0; i < persons.length; i++) {
+    if ('fathername' in persons[i]) {
+        persons[i].fullName = persons[i].name + ' ' + persons[i].surname
+    }
+}
+
+//serialize
+JSON.stringify(persons)
+
+//deserialize
+persons[persons.length] = JSON.parse('{"name": "Peeter", "surname": "Steel", "project": "Type O Negative"}')
+
+//HTML
+    // let str = "<table border='1'>"
+    // for (let i = 0; i < persons.length; i++) {
+    //     if (i === 0) {
+    //         str += `<tr><th></th><th>Name</th><th>Surname</th></tr>`
+    //     } else {
+    //         str += `<tr><td>${i}</td><td>${persons[i].name}</td><td>${persons[i].surname}</td></tr>`
+    //     }  
+    // }
+    // str += "</table>"
+
+    // console.log(str)
+    // document.write(str)
+
+//HTML optional fields
+    // let columns = {}
+    // for (let i = 0; i < persons.length; i++) {
+    //     Object.assign(columns, persons[i])
+    // }
+    // let str = '<table border="1">'
+    // for (let i = 0; i <= persons.length; i++) {
+    //     str += '<tr>'
+    //     if (i === 0) {
+    //         str += '<td></td>'
+    //         for (let [key, value] of Object.entries(columns)) {
+    //             str += `<td> ${key} </td>`
+    //         }
+    //     } else {
+    //         str += `<td>${i}</td>`
+    //         for (let [key, value] of Object.entries(columns)) {
+    //             if (key in persons[i-1]) {
+    //                 str += `<td> ${persons[i-1][key]} </td>`
+    //             } else {
+    //                 str += `<td> </td>`
+    //             }
+                
+    //         }
+    //     }
+    //     str += '</tr>'
+    // }
+    // str += '</table>'
+    // document.write(str)
+
+//HTML tr color
+    // let columns = {}
+    // for (let i = 0; i < persons.length; i++) {
+    //     Object.assign(columns, persons[i])
+    // }
+    // let str = '<table border="1">'
+    // for (let i = 0; i <= persons.length; i++) {
+    //     if (i % 2) {
+    //         str += '<tr>'
+    //     } else {
+    //         str += '<tr style="background-color: rgba(255, 0, 0, 0.2)">'
+    //     }
+        
+    //     if (i === 0) {
+    //         str += '<td></td>'
+    //         for (let [key, value] of Object.entries(columns)) {
+    //             str += `<td> ${key} </td>`
+    //         }
+    //     } else {
+    //         str += `<td>${i}</td>`
+    //         for (let [key, value] of Object.entries(columns)) {
+    //             if (key in persons[i-1]) {
+    //                 str += `<td> ${persons[i-1][key]} </td>`
+    //             } else {
+    //                 str += `<td> </td>`
+    //             }
+                
+    //         }
+    //     }
+    //     str += '</tr>'
+    // }
+    // str += '</table>'
+    // document.write(str)
+
+//HTML th optional
+//Я уже случайно это сделала кажется, тут просто заменила свои td на th в нужном месте
+let columns = {}
+for (let i = 0; i < persons.length; i++) {
+    Object.assign(columns, persons[i])
+}
+let str = '<table border="1">'
+for (let i = 0; i <= persons.length; i++) {
+    if (i % 2) {
+        str += '<tr>'
+    } else {
+        str += '<tr style="background-color: rgba(255, 0, 0, 0.2)">'
+    }
+    
+    if (i === 0) {
+        str += '<th></th>'
+        for (let [key, value] of Object.entries(columns)) {
+            str += `<th> ${key} </th>`
+        }
+    } else {
+        str += `<td>${i}</td>`
+        for (let [key, value] of Object.entries(columns)) {
+            if (key in persons[i-1]) {
+                str += `<td> ${persons[i-1][key]} </td>`
+            } else {
+                str += `<td> </td>`
+            }
+            
+        }
+    }
+    str += '</tr>'
+}
+str += '</table>'
+document.write(str)
+
+//Задание на синий пояс
+var someTree = {
+    tagName: "table", 
+    subTags: [ 
+        {
+                    tagName: "tr",
+                    subTags: [
+                        {
+                            tagName: "td",
+                            text: "some text",
+                        },
+                        {
+                            tagName: "td",
+                            text: "some text 2",
+                        }
+                    ]
+        }
+    ],
+    attrs: 
+    {
+        border: 1,
+    },
+}
+
+function tableConstructor (object) {
+
+    let table = `<${object.tagName}`
+    for (let [key, value] of Object.entries(object.attrs)) {
+        table +=  ` ${key}="${value}"`
+    }
+    table += `>`
+    
+    for (let i = 0; i < object.subTags.length; i++) {
+        table += `<${object.subTags[i].tagName}>`
+        if ('subTags' in object.subTags[i]) {
+            for (let j = 0; j < object.subTags[i].subTags.length; j++) {
+                table += `<${object.subTags[i].subTags[j].tagName}>`
+                if ('text' in object.subTags[i].subTags[j]) {
+                    table += `${object.subTags[i].subTags[j].text}`
+                }
+                table += `</${object.subTags[i].subTags[j].tagName}>`
+            }
+        }
+        table += `</${object.subTags[i].tagName}>`
+    }
+    table += `</${object.tagName}>`
+
+    document.write(table)
+}
+
+//destruct array
+    // let arr = [1,2,3,4,5, "a", "b", "c"]
+
+    // let [even1, even2] = arr.filter(element => !(element % 2))
+    // let [odd1, odd2, odd3] = arr.filter(element => element % 2)
+    // let oneMoreArr = arr.filter(element => !(+element))
+
+//destruct string
+    // let arr = [1, "abc"]
+
+    // let [number] = arr.filter(element => +element)
+    // let [[s1, s2, s3]] = arr.filter(element => !(+element))
+
+//destruct 2
+    // let obj = {
+    //     name: 'Ivan',
+    //     surname: 'Petrov',
+    //     children: [{ name: 'Maria' }, { name: 'Nikolay' }]
+    // }
+
+    // let {
+    //     children: [{name: name1}, {name: name2}]
+    // } = obj
+
+//destruct 3
+    // let arr = [1,2,3,4,5,6,7,10]
+    // let {0:a, 1:b, length} = arr;
+
+//Задание на черный пояс
+let predictArray = {
+    "0000": -1,
+    "0001": -1,
+    "0010": -1,
+    "0100": -1,
+    "1000": -1,
+    "0011": -1,
+    "0110": -1,
+    "1100": -1,
+    "1001": -1,
+    "0101": -1,
+    "1010": -1,
+    "1110": -1,
+    "0111": -1,
+    "1011": -1,
+    "1101": -1,
+    "1111": -1,
+}
+
+let history = "1111"
+let prediction = predictArray[history];
+let points = 0;
+let counter = 0;
+while (true) {
+    if (prediction === -1) {
+        console.log('Предсказание гадалки: ' + Math.round(Math.random()))
+    } else {
+        console.log('Предсказание гадалки: ' + prediction)
+    }
+
+    let userNumber = prompt('Введите 0 или 1')
+    if (userNumber === null || userNumber === '') {
+        break
+    }
+    console.log('Ввод пользователя: ' + userNumber)
+    counter++
+
+    if (prediction == userNumber) {
+        points--
+    } else {
+        points++
+    }
+    alert('Ваш счёт: ' + points)
+
+    prediction = +userNumber;
+    history = history.split('');
+    history.shift();
+    history.push(+userNumber);
+    history = history.join('')
+}
+
+alert('Количество ходов: ' + counter + '. Ваш счёт: ' + points)
+
+