-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlesson3.js
314 lines (279 loc) · 10 KB
/
lesson3.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
// Реалізуйте клас Student, який успадковуватиметься від класу User. Цей клас повинен мати такі властивості:
// name приватна властивість (ім'я, успадковується від User),
// surname приватна властивість (прізвище, успадковується від User),
// year (рік вступу до вузу).
// Клас повинен мати метод getFullName() (успадковується від User), за допомогою якого можна вивести одночасно ім'я та прізвище студента.
// Також клас повинен мати метод getCourse(), який виводитиме поточний курс студента (від 1 до 5, якщо значення перевищує 5 курс виводити що студент являєтсья випускником).
// Курс обчислюється так: потрібно від поточного року відняти рік вступу до вузу. Поточний рік отримаєте самостійно (читати документацію!!!).
// Приклад ініціалізації екземпляру класа:
// const student = new Student('Петрик', 'Пяточкин', 2019);
// student.getFullName(); //поверне 'Петрик Пяточкин'
// student.getCourse(); //поверне 3 (третій курс)
// =====================================================
// Стоврити функцію яка буде перебирати масив обєктів (films),з кожного обєкта потрібно взяти IDs жанрів фільмів та знайти
// їх в іншому єбєкті який буде містити в собі ID та назву жанру відповідну до цего ID.
// Функція повертає стрінгу з назвами фільмів та жанрами до яких цей фільм входить, якщо кількість жанрів більше двох потрібно
// вивести назву перших двох жанрів і додати надпис 'Others'.
// В результаті маємо отримати:
//
// Films list:
// 1. 'Interceptor: Action, Thriller, Others.'
// 2. 'Fantastic Beasts: The Secrets of Dumbledore: Fantasy, Adventure, Others.'
// 3. 'Last Seen Alive: Action, Thriller.'
// 4. 'Jurassic World Dominion: Science Fiction, Action, Others.'
const films = [
{
title: 'Interceptor',
genre_ids: [28, 53, 12],
},
{
title: 'Fantastic Beasts: The Secrets of Dumbledore',
genre_ids: [14, 12, 28],
},
{
title: 'Last Seen Alive',
genre_ids: [28, 53],
},
{
title: 'Jurassic World Dominion',
genre_ids: [878, 28, 12, 53],
},
];
const genres = [
{
id: 28,
name: 'Action',
},
{
id: 12,
name: 'Adventure',
},
{
id: 14,
name: 'Fantasy',
},
{
id: 878,
name: 'Science Fiction',
},
{
id: 53,
name: 'Thriller',
},
{
id: 10752,
name: 'War',
},
{
id: 37,
name: 'Western',
},
];
films.forEach(film => {
const names = film.genre_ids.map(id => {
return genres.find(genre => genre.id === id).name;
});
//console.log(names);
film.genreName = names;
console.log(film);
});
const list = films.reduce((acc, film, idx) => {
return (
acc +
`${idx + 1} ${film.title} : ${
film.genreName.length < 3
? film.genreName.join(', ')
: `${film.genreName[0]}, ${film.genreName[1]}, Others... \n `
} `
);
}, 'film list \n');
console.log(list);
// -----------------------------------------TASK 1------------------------------------------//
// 1 Створити метод об'єкту який буде приймати 1 параметр назву факультету та повертати списoк імен учнів факультету
// 2 Створити метод об'єкту який буде приймати 1 параметр назву факультету та повертати кількість очків факультета
// 3 Створити метод об'єкту який буде виводити ім'я факультету в якого більше очків
// const hogvarts = {
// griffindor: [{
// name: "Harry",
// points: 17
// },
// {
// name: "Hermiona",
// points: 19
// },
// {
// name: "Ron",
// points: 14
// },
// ],
// sliserin: [{
// name: "Draco",
// points: 17
// },
// {
// name: "Goyl",
// points: 14
// },
// {
// name: "Crabbe",
// points: 5
// },
// ],
// }
// -----------------------------------------TASK 2------------------------------------------//
// Створити функцію яка буде приймати 2 параметра.
// 1 Масив студентів.
// 2 Мову програмування яку потрібно знайти.
// Функція повертає масив імен користувачів які вивчають цю мову.
// const students = [{
// name: `Lika`,
// language: `html`
// }, {
// name: `Anton`,
// language: `css`
// }, {
// name: `Andriy`,
// language: `js`
// }, {
// name: `Vova`,
// language: `html`
// }, {
// name: `Alina`,
// language: `css`
// }, {
// name: `Egor`,
// language: `js`
// }, {
// name: `Aleksandr`,
// langunage: `html`
// }, {
// name: `Taras`,
// language: `css`
// }, {
// name: `Ivan`,
// language: `js`
// }, {
// name: `Make`,
// language: `html`
// }, ];
// // Порахувати скільки ззаробив кожен юзер
// // (функція приймає 2 параметри
// // 1 параметр масив
// // 2 параметр імя робітника
// // Функція повертає скільки він заробив (salary*month) )
// // Порахувати загальну суму заробітку всіх робітників()
// // (функція приймає 1 параметр масив, і повертає загальну суму заробітку всіх робітників);
// // const workers = [{
// // name: 'Alex',
// // salary: 3500,
// // month: 12,
// // },
// // {
// // name: 'Dima',
// // salary: 2500,
// // month: 9,
// // },
// // {
// // name: 'Oleg',
// // salary: 1500,
// // month: 36,
// // },
// // ];
// 1 Створити функцію яка буде приймати 2 параметри
// 1 параметр масив
// 2 параметр назва книги
// Функція повертає Імена юзерів (формат стрінги) в яких є ця книга ("Harry Potter") \\\ "Anna, Oleksii"
// 2 Порахувати вік всіх юзерів у яких є ключ age.
// const friends = [{ name: "Anna", books: ["Bible", "Harry Potter"], age: 21 },
// { name: "Bob", books: ["War and peace", "Romeo and Juliet"], age: 26 },
// { name: "Alice", books: ["War and peace", "Romeo and Juliet"]},
// { name: "Oleksii", books: ["Bible","War and peace","Harry Potter", "Romeo and Juliet"], age: 26},
// ]
// Потрібно створити 4 методи об'єкту
// 1 виводить суму на карті (назву вводимо в prompt())
// 2 додає нову карту (назву вводимо в prompt())
// 3 зняти з карти (назву вводимо в prompt() та суму в prompt())
// 4 додати на карту (назву вводимо в prompt() та суму в prompt())
// const bankSystem = {
// privat : 1000,
// mono : 1500,
// }
// -----------------------------------------TASK 6------------------------------------------//
// Створити функцію яка буде шукати нарциса. Головна умова нарциса знають всі, нарцис не знає нікого.
// const people1 = [{
// name: 'Alex',
// know: ['Eva', 'Jhon'],
// },
// {
// name: 'Ivan',
// know: ['Jhon', 'Alex']
// },
// {
// name: 'Eva',
// know: ['Alex','Jhon']
// },
// {
// name: 'Jhon',
// know: [Alex]
// },
// ] //Not found
// const people2 = [{
// name: 'Alex',
// know: ['Eva', 'Jhon'],
// },
// {
// name: 'Jhon',
// know: []
// },
// {
// name: 'Eva',
// know: []
// },
// {
// name: 'Ivan',
// know: ['Jhon', 'Alex']
// },
// ];// Not found
// const people3 = [{
// name: 'Alex',
// know: ['Eva', 'Jhon'],
// },
// {
// name: 'Jhon',
// know: []
// },
// {
// name: 'Eva',
// know: ['Alex', 'Jhon']
// },
// {
// name: 'Ivan',
// know: ['Jhon', 'Alex']
// },
// ]; // Jhon
// Створити функцію яка приймає 1 параметр масив продуктів і повертає мутований масив
// Потрібно перебрати масив і якщо він має об'єкти в яких дублюються айді то квонтіті цих елементів потрібно сплюсувати
// а ті обє'кти в яких айді співпав видалити з масиву.
// (Потрібно мутувати масив, створювати новий не потрібно)
// const products = [{
// id: 'sku1',
// qty: 1,
// }, {
// id: 'sku2',
// qty: 2,
// }, {
// id: 'sku3',
// qty: 3,
// }, {
// id: 'sku1',
// qty: 6,
// }, {
// id: 'sku1',
// qty: 8,
// }, {
// id: 'sku2',
// qty: 19,
// }, {
// id: 'sku4',
// qty: 1,
// }]