Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions js-core/homeworks/homework-18/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Homework-18</title>
<style>
td {
border: 1px solid #000000;
width: 50px;
height: 50px;
}
</style>
</head>
<body>
<table>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
<script src="src/main.js"></script>
</body>
</html>
76 changes: 76 additions & 0 deletions js-core/homeworks/homework-18/src/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
/* EASY
Алгоритмы !
TASK 0
Вам дано предложение, верните массив из слов,
которые длинее чем средняя длина всех слов.
Слова разделены пробелами, если в предложении запятые,они должны быть пропущены
solution(["This is a sample string"]) expected ["This" "sample" "string"]
solution(["Some another sample"]) expected ["another" "sample"]
solution(["Do, do, do, do... do it!"]) expected []
*/

function removePunctuation(string) {
return string.replace(/[.,!?]/g, "")

}

function solution (arr) {
let wordsArr = arr[0].split(' ').map(word => {
return removePunctuation(word)
});
let lengthsArr = wordsArr.map(word => {
return word.length
});
let sumLengthsArr = 0;
lengthsArr.forEach(length => {
return sumLengthsArr += length;
});
let averageLength = sumLengthsArr/lengthsArr.length;
let res = wordsArr.filter(word => {
if(word.length > averageLength) {
return word;
}
});
console.log(res);
}

solution(["This is a sample string"]);
solution(["Some another sample"]);
solution(["Do, do, do, do... do it!"]);


/* TASK 1
Сделайте таблицу 5x5
При клике на элемент, изменяйте цвет у элемента на красный.
Но цвет у элемента должен изменяться пропорционально в другой половине квадрата
Пример 3х3:
[]|[]|[]
[]|[]|[]
[]|[]|[]
кликаем сюда -> []|[]|[]
[]|[]|[]
[]|[]|[x] <- загорается тут
[]|[]|[]
кликаем сюда -> []|[]|[x] <- загорается тут
[]|[]|[x]
*/

/* C делегированием я не смогла сделать */

let table = document.querySelector('table');

// table.addEventListener('click', (event) => {
// if (event.target.tagName === 'TD') {
// }
// });

/* Только присвоением события на каждый элемент*/

let cells = document.querySelectorAll('td');

for (let i = 0; i < cells.length; i++) {
cells[i].addEventListener('click', () => {
let number = cells.length - 1 - i;
cells[number].style.background = 'red';
})
}