Skip to content

Commit 73efff1

Browse files
authored
Merge pull request #18 from EasyCode-JavaScriptReact-v1/homework_15
homework_15
2 parents 7197fed + 13427cf commit 73efff1

File tree

3 files changed

+668
-0
lines changed

3 files changed

+668
-0
lines changed
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title>homework_15</title>
5+
<meta charset="utf-8" />
6+
<link href="https://stackpath.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
7+
<link rel="stylesheet" type="text/css" href="style.css">
8+
</head>
9+
<body>
10+
<header class="header">
11+
<div class="container top-radius">
12+
<h2>Contacts</h2>
13+
</div>
14+
</header>
15+
16+
<main>
17+
<div class="container">
18+
<form class="form-inline search-form">
19+
<div class="form-group">
20+
<label class="sr-only" for="search">Search</label>
21+
<input type="text" class="form-control" id= "search" placeholder="Search">
22+
</div>
23+
</form>
24+
<!-- <table class="table table-hover contacts">
25+
<thead>
26+
<tr>
27+
<th>Name</th>
28+
<th>Last name</th>
29+
<th>Email</th>
30+
</tr>
31+
</thead>
32+
<tbody>
33+
<tr>
34+
<td>Иван</td>
35+
<td>Петров</td>
36+
37+
</tr>
38+
<tr>
39+
<td>Сергей</td>
40+
<td>Сергеев</td>
41+
42+
</tr>
43+
<tr>
44+
<td>Иван</td>
45+
<td>Иванов</td>
46+
47+
</tr>
48+
<tr>
49+
<td>Александр</td>
50+
<td>Александров</td>
51+
52+
</tr>
53+
<tr>
54+
<td>Алекс</td>
55+
<td>Смирнов</td>
56+
57+
</tr>
58+
<tr>
59+
<td>Сергей</td>
60+
<td>Волков</td>
61+
62+
</tr>
63+
<tr>
64+
<td>Мария</td>
65+
<td>Шарапова</td>
66+
67+
</tr>
68+
<tr>
69+
<td>Александр</td>
70+
<td>Винник</td>
71+
72+
</tr>
73+
<tr>
74+
<td>Дарий</td>
75+
<td>Смирнов</td>
76+
77+
</tr>
78+
<tr>
79+
<td>Елена</td>
80+
<td>Лещенко</td>
81+
82+
</tr>
83+
<tr>
84+
<td>Ольга</td>
85+
<td>Новикова</td>
86+
87+
</tr>
88+
<tr>
89+
<td>Наталья</td>
90+
<td>Шемякина</td>
91+
92+
</tr>
93+
<tr>
94+
<td>Анна</td>
95+
<td>Донцова</td>
96+
97+
</tr>
98+
<tr>
99+
<td>Влад</td>
100+
<td>Яма</td>
101+
102+
</tr>
103+
<tr>
104+
<td>Кира</td>
105+
<td>Воробьева</td>
106+
107+
</tr>
108+
<tr>
109+
<td>Виктор</td>
110+
<td>Кривенко</td>
111+
112+
</tr>
113+
</tbody>
114+
</table> -->
115+
</div>
116+
</main>
117+
<footer class="footer">
118+
<div class="container bottom-radius">
119+
<nav class="main-nav">
120+
<a href="index.html" class="tab active">
121+
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
122+
<span class = "tab-text">Contacts</span>
123+
</a>
124+
<a href="keypad.html" class="tab">
125+
<span class="glyphicon glyphicon-th" aria-hidden="true"></span>
126+
<span class = "tab-text">Keypad</span>
127+
</a>
128+
<a href="edit-contact.html" class="tab">
129+
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
130+
<span class = "tab-text">Edit contact</span>
131+
</a>
132+
<a href="user.html" class="tab">
133+
<span class="glyphicon glyphicon-user" aria-hidden="true"></span>
134+
<span class = "tab-text">User</span>
135+
</a>
136+
<a href="add-user.html" class="tab">
137+
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
138+
<span class = "tab-text">Add user</span>
139+
</a>
140+
</nav>
141+
</div>
142+
</footer>
143+
144+
<script src="index.js"></script>
145+
</body>
146+
</html>
Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
// TASK 1
2+
const solution = str => {
3+
let regExpLetter = /[a-z]/g;
4+
let regExpNunber = /[0-9]/;
5+
if(str.search(regExpNunber) === 0){
6+
return false;
7+
};
8+
if(str.search(regExpLetter) === 0) {
9+
let arrFromRegExp = str.match(regExpLetter);
10+
let newArrWithoutRepetition = [];
11+
for(let i = 0; i < arrFromRegExp.length; i++) {
12+
for(let k = 0; k < newArrWithoutRepetition.length; k++) {
13+
if(newArrWithoutRepetition[k] == arrFromRegExp[i]) {
14+
newArrWithoutRepetition.splice(k, 1);
15+
};
16+
};
17+
newArrWithoutRepetition.push(arrFromRegExp[i]);
18+
};
19+
if(newArrWithoutRepetition.length === 26 ) {
20+
return true;
21+
} else{
22+
return false;
23+
};
24+
};
25+
};
26+
27+
console.log('Task1 ---> ', solution("wyyga"));//false
28+
console.log('Task1 ---> ', solution("qwertyuioplkjhgfdsazxcvbnm")); //true
29+
console.log('Task1 ---> ', solution("ejuxggfsts")); //false
30+
console.log('Task1 ---> ', solution("qpwoeirutyalskdjfhgmznxbcv")); //true
31+
console.log('Task1 ---> ', solution("qqqqqqqqpwoeirutyallskkdjfhgmmznxbcv")); //true
32+
console.log('Task1 ---> ', solution("0123456789abcdefghijklmnop")); //false
33+
34+
35+
36+
//TASK2
37+
const flatten = arr => {
38+
let arr2 = [];
39+
arr.forEach((elem) => {
40+
if(!Array.isArray(elem)) {
41+
arr2.push(elem);
42+
} else {
43+
arr2 = arr2.concat(flatten(elem));
44+
};
45+
});
46+
return arr2;
47+
};
48+
49+
console.log('Task2 ---> ', flatten([1, [2, [ {a: "b", c: 'd' }, { c: [1, 2, 5] } ] ] ]));
50+
console.log('Task2 ---> ', flatten([[1,2],[3,[4]],5, 10]));
51+
console.log('Task2 ---> ', flatten([25, 10, [10, [15]]]));
52+
53+
54+
55+
56+
//Task3
57+
class UsersContacts {
58+
constructor() {
59+
this.dataUsers = [
60+
{
61+
name: 'Иван',
62+
lastName: 'Петров',
63+
64+
},
65+
{
66+
name: 'Сергей',
67+
lastName: 'Сергей',
68+
69+
},
70+
{
71+
name: 'Иван',
72+
lastName: 'Иванов',
73+
74+
},
75+
{
76+
name: 'Александр',
77+
lastName: 'Александров',
78+
79+
},
80+
{
81+
name: 'Алекс',
82+
lastName: 'Смирнов',
83+
84+
},
85+
{
86+
name: 'Сергей',
87+
lastName: 'Волков',
88+
89+
},
90+
{
91+
name: 'Мария',
92+
lastName: 'Шарапова',
93+
94+
},
95+
{
96+
name: 'Александр',
97+
lastName: 'Винник',
98+
99+
},
100+
{
101+
name: 'Дарий',
102+
lastName: 'Смирнов',
103+
104+
},
105+
{
106+
name: 'Елена',
107+
lastName: 'Лещенко',
108+
109+
},
110+
{
111+
name: 'Ольга',
112+
lastName: 'Новикова',
113+
114+
},
115+
{
116+
name: 'Наталья',
117+
lastName: 'Шемякина',
118+
119+
},
120+
{
121+
name: 'Анна',
122+
lastName: 'Донцова',
123+
124+
},
125+
{
126+
name: 'Влад',
127+
lastName: 'Яма',
128+
129+
},
130+
{
131+
name: 'Кира',
132+
lastName: 'Воробьева',
133+
134+
},
135+
{
136+
name: 'Виктор',
137+
lastName: 'Кривенко',
138+
139+
}
140+
];
141+
this.columnHeadings = ['Name', 'Last name', 'Email'];
142+
};
143+
144+
render() {
145+
let insert = document.querySelector('main > div');
146+
insert.appendChild(this.createTable());
147+
};
148+
149+
createNewElement(newElem) {
150+
return document.createElement(newElem);
151+
};
152+
153+
createTable() {
154+
let table = this.createNewElement('table');
155+
table.setAttribute('class', 'table table-hover contacts');
156+
table.appendChild(this.cteateTheadInTable());
157+
table.appendChild(this.cteateTbodyInTable());
158+
return table;
159+
};
160+
161+
cteateTheadInTable() {
162+
let thead = this.createNewElement('thead');
163+
let tr = this.createNewElement('tr');
164+
thead.appendChild(tr);
165+
this.columnHeadings.forEach((elem) => {
166+
let th = this.createNewElement('th');
167+
th.textContent = elem;
168+
tr.appendChild(th);
169+
});
170+
return thead;
171+
};
172+
173+
cteateTbodyInTable() {
174+
let tbody = this.createNewElement('tbody');
175+
//table.appendChild(tbody);
176+
this.dataUsers.forEach((elem) => {
177+
let tr = this.createNewElement('tr')
178+
tbody.appendChild(tr);
179+
let arrObjkeys = Object.keys(elem);
180+
arrObjkeys.forEach((elemTd) => {
181+
let td = this.createNewElement('td');
182+
td.textContent = elem[elemTd];
183+
tr.appendChild(td);
184+
});
185+
});
186+
return tbody;
187+
};
188+
};
189+
190+
let usersContacts = new UsersContacts();
191+
usersContacts.render();

0 commit comments

Comments
 (0)