Parcourir la source

update 13,14 add 15 part 1

Olga1108 il y a 4 ans
Parent
commit
5383c6462a

+ 12 - 0
js13Danil7/index.html

@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html lang='en'>
+    <head>
+        <meta charset='UTF-8' />
+        <meta name='viewport' content='width=device-width, initial-scale=1.0' />
+        <title>Home Work 13 JS</title>
+    </head>
+    <body>
+        <h1>Home Work 13</h1>
+        <script src='index.js'></script>    
+    </body>
+</html>

+ 146 - 0
js13Danil7/index.js

@@ -0,0 +1,146 @@
+const studentsArr = [{
+    name: 'Сергей',
+    surname: 'Войлов',
+    ratingPoint: 1000,
+    schoolPoint: 1000,
+    course: 2,
+},
+{
+    name: 'Татьяна',
+    surname: 'Коваленко',
+    ratingPoint: 880,
+    schoolPoint: 700,
+    course: 1,
+},
+{
+    name: 'Анна',
+    surname: 'Кугир',
+    ratingPoint: 1430,
+    schoolPoint: 1200,
+    course: 3,
+},
+{
+    name: 'Станислав',
+    surname: 'Щелоков',
+    ratingPoint: 1130,
+    schoolPoint: 1060,
+    course: 2,
+},
+{
+    name: 'Денис',
+    surname: 'Хрущ',
+    ratingPoint: 1000,
+    schoolPoint: 990,
+    course: 4,
+},
+{
+    name: 'Татьяна',
+    surname: 'Капустник',
+    ratingPoint: 650,
+    schoolPoint: 500,
+    course: 3,
+},
+{
+    name: 'Максим',
+    surname: 'Меженский',
+    ratingPoint: 990,
+    schoolPoint: 1100,
+    course: 1,
+},
+{
+    name: 'Денис',
+    surname: 'Марченко',
+    ratingPoint: 570,
+    schoolPoint: 1300,
+    course: 4,
+},
+{
+    name: 'Антон',
+    surname: 'Завадский',
+    ratingPoint: 1090,
+    schoolPoint: 1010,
+    course: 3
+},
+{
+    name: 'Игорь',
+    surname: 'Куштым',
+    ratingPoint: 870,
+    schoolPoint: 790,
+    course: 1,
+},
+{
+    name: 'Инна',
+    surname: 'Скакунова',
+    ratingPoint: 1560,
+    schoolPoint: 200,
+    course: 2,
+},
+];
+
+
+const budgetLimit = 5;
+const allowRating = 800;
+let id = 1;
+
+class CreateStudent {
+    constructor(student) {
+        CreateStudent.id.call(this)
+        
+        this.name = student.name;
+        this.surname = student.surname;
+        this.ratingPoint = student.ratingPoint;
+        this.schoolPoint = student.schoolPoint;
+        this.isSelfPayment = (student.ratingPoint >= allowRating ) ? student.isSelfPayment = false : student.isSelfPayment = true;
+        this.course = student.course;
+    }
+static id = function() { return this.id = id++;};
+getTypeOfStudy() {if(this.isSelfPayment === false) {
+    return `бюджет`
+        }
+        return `контракт`
+    }
+getFullInfo() {return `Я - ${this.name} ${this.surname}, рейтинговый балл - ${this.ratingPoint}, форма обучения - ${this.getTypeOfStudy()}`};
+getRankedPlace() {
+    const index = fullListStudents.findIndex((stud) => stud.id == this.id)
+    return index + 1;
+}
+     
+}; 
+
+ 
+let contract = [];
+
+const setAllCreatedStudentsByConstructor = arrOfStudents => {
+   arrOfStudents = studentsArr.map((student) => new CreateStudent(student));
+    arrOfStudents.sort(function(currentStudent, nextStudent) {return nextStudent.ratingPoint - currentStudent.ratingPoint || nextStudent.schoolPoint - currentStudent.schoolPoint});
+    arrOfStudents.map(function(student, index) {
+        if(index >= budgetLimit) {
+            student.isSelfPayment = true;
+            if (student.isSelfPayment === true) {
+                contract.push(student)
+            }
+        }
+    })
+ budget = arrOfStudents.filter(student => student.isSelfPayment === false) 
+  fullListStudents = [...budget,...contract].sort(function(currentStudent, nextStudent) {return nextStudent.ratingPoint - currentStudent.ratingPoint || nextStudent.schoolPoint - currentStudent.schoolPoint});
+}
+
+setAllCreatedStudentsByConstructor(studentsArr)
+console.log(budget)   
+console.log(contract)
+console.log(fullListStudents)
+console.log(contract[3].getFullInfo())
+console.log(fullListStudents[2].getRankedPlace())
+  
+class Intern extends CreateStudent {
+
+    constructor(companyName) {
+        super(companyName);
+        this.companyName = companyName = 'Google';
+    }
+    getFullInternInfo() {return `Я - ${this.name} ${this.surname}, рейтинговый балл - ${this.ratingPoint}, форма обучения - ${this.getTypeOfStudy()}, интерн в компании ${this.companyName}`};
+}
+
+interns = fullListStudents.map((companyName) => new Intern(companyName, 'Google'))
+    
+console.log(interns[3].getFullInternInfo())

+ 11 - 0
js14.1awaitDanilhw11/index.html

@@ -0,0 +1,11 @@
+<html lang='en'>
+    <head>
+        <meta charset='UTF-8' />
+        <meta name='viewport' content='width=device-width, initial-scale=1.0' />
+        <title>Home Work 14.1 await JS</title>
+    </head>
+    <body>
+        <h1>Home Work 14.1 await</h1>
+        <script src='index.js'></script>    
+    </body>
+</html>

+ 21 - 0
js14.1awaitDanilhw11/index.js

@@ -0,0 +1,21 @@
+let count = 2;
+
+
+const calc1 = () => {
+    return new Promise((res, rej) => {
+        setTimeout(() => { count = count + 1; res(count) }, 2000)
+    })
+}
+
+const calc2 = () => {
+    return new Promise((res, rej) => {
+        setTimeout(() => { count = count * 2; res(count) }, 3000)
+    })
+}
+
+const calcNum = async() => {
+    count = await calc2();
+    count = await calc1();
+    console.log(count)
+}
+calcNum();

+ 11 - 0
js14.1thenDanilhw11/index.html

@@ -0,0 +1,11 @@
+<html lang='en'>
+    <head>
+        <meta charset='UTF-8' />
+        <meta name='viewport' content='width=device-width, initial-scale=1.0' />
+        <title>Home Work 14.1 then JS</title>
+    </head>
+    <body>
+        <h1>Home Work 14.1 then</h1>
+        <script src='index.js'></script>    
+    </body>
+</html>

+ 21 - 0
js14.1thenDanilhw11/index.js

@@ -0,0 +1,21 @@
+let count = 2;
+
+
+const calc1 = () => {
+    return new Promise((res, rej) => {
+        setTimeout(() => { count = count + 1; res(count) }, 2000)
+    })
+}
+
+const calc2 = () => {
+    return new Promise((res, rej) => {
+        setTimeout(() => { count = count * 2; res(count) }, 3000)
+    })
+}
+calc2().then(result => {
+    count = result;
+    calc1().then(result => {
+        count = result;
+        console.log(count);
+    })
+})

+ 12 - 0
js14.2Danilhw11/index.html

@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html lang='en'>
+    <head>
+        <meta charset='UTF-8' />
+        <meta name='viewport' content='width=device-width, initial-scale=1.0' />
+        <title>Home Work 14.2 JS</title>
+    </head>
+    <body>
+        <h1>Home Work 14.2</h1>
+        <script src='index.js'></script>    
+    </body>
+</html>

+ 17 - 0
js14.2Danilhw11/index.js

@@ -0,0 +1,17 @@
+const getBooks = async(n = 1) => {
+    let books = await fetch(`https://www.googleapis.com/books/v1/volumes?q=quilting=${n}`);
+    books = await books.json()
+    return books.items
+}
+getBooks(1).then(books => console.log(books))
+
+ const getFiftyBooks = async() => {
+    let arrFiftyBooks = [];
+    for (let i = 1; i <= 5; i++) {
+         books = await getBooks(i);
+         arrFiftyBooks.push(...books);
+    }
+    return arrFiftyBooks;
+}
+
+getFiftyBooks().then(books => console.log(books))

+ 13 - 0
js15Danil12/index.html

@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html lang='en'>
+    <head>
+        <meta charset='UTF-8' />
+        <meta name='viewport' content='width=device-width, initial-scale=1.0' />
+        <title>Home Work 15 JS</title>
+    </head>
+    <body>
+        <h1>Home Work 15</h1>
+        <script src='https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.2/axios.js'></script> 
+        <script src='index.js'></script>  
+    </body>
+</html>

+ 67 - 0
js15Danil12/index.js

@@ -0,0 +1,67 @@
+//1 Создать функцию которая сохранит в глобальную переменную - массив всех пользователей из https://api-f22.herokuapp.com/. (GET)
+
+const url = 'https://api-f22.herokuapp.com/'
+let allUsers = []
+  function getUsers() {
+     axios
+     .get(url + 'users')
+     .then(response => allUsers.push(...response.data))
+};
+getUsers();
+console.log(allUsers)
+
+//2 Создать функцию которая создаст нового пользователя. После как бек его вернет с новым id, пушим в раннее созданную переменную его. (POST)
+function createUser() {
+    axios
+    .post(url + 'users/', {name: 'Kostya'})
+    .then(response => allUsers.push(response.data))
+};
+ createUser();
+console.log(allUsers)
+
+//3 Создать функцию которая выводит в консоль пользователя по id. (GET with path-params)
+function getUserById() {
+    axios
+     .get(url + 'users/2')
+     .then(response => console.log(response.data))
+}
+getUserById()
+//4 Создать функцию которая удаляет пользователя по id. После когда удаление прошло, удалем этого пользователя из нашего локального массива. (DELETE with path-params)
+function deleteUserById() {
+    axios
+     .delete(url + 'users/2')
+     .then(response => console.log(response.data))
+}
+deleteUserById()
+
+//5 Создать функцию которая обновляет пользователя по id. После когда обновление прошло, обновляем этого пользователя в нашем локальном массиве.
+function updateUserById() {
+    axios
+     .patch(url + 'users/', {name: 'Ihor', id: 1})
+     .then(response => console.log(response.data))
+}
+updateUserById()
+
+
+// Home work 12.2 (HTTP, fetch)
+
+//1 Создать функцию которая будет создавать фильм
+// urn: /films
+//   method: POST
+//   body: {title: <название фильма>, author: <режисер>}
+
+
+
+//2 Создать функцию которая будет добавлять id фильма для пользователя
+// urn: /users/addFilm
+//   method: POST
+//   body: {userId: <id пользовтеля>, filmId: <id фильма>}
+
+
+//3 Создать функцию которая выведет на страницу (HTML) всех пользователей с фильмами в виде объектов (сделать то задание, которое делали в группе)
+
+
+
+//4 Создать функцию которая возмет всех юзеровhttp://jsonplaceholder.typicode.com/users, 
+// потом запросит массив альбомов и добавит каждому юзеру в массив albums все эти альбомы http://jsonplaceholder.typicode.com/albums
+// смотрим на userId. После запрашиваем photos http://jsonplaceholder.typicode.com/photos и добавлем все фотки в альбомы по albumId каждому юзеру.

+ 12 - 0
js16Danil9/index.html

@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html lang='en'>
+    <head>
+        <meta charset='UTF-8' />
+        <meta name='viewport' content='width=device-width, initial-scale=1.0' />
+        <title>Home Work 13 JS</title>
+    </head>
+    <body>
+        <h1>Home Work 13</h1>
+        <script src='index.js'></script>    
+    </body>
+</html>

+ 0 - 0
js16Danil9/index.js