home_works's Introduction
home_works's People
home_works's Issues
HW 10
TASK 1
if (value === 1) {
console.log('Stay here')
}
if (value >= 2) {
console.log(`Go ${value} steps`)
}
тернарный оператор тут бы смотрелся красивее и короче)
number == 1 ? console.log('Stay here') : console.log(`Go ${number} steps`)
TASK 2
Успешный промис быстрее будет сделать через Promise.resolve(arr)
а неуспешный - через Promise.reject()
TASK 3
К чему хотелось бы придраться.
Много дублирующего кода
_
у тебя запрос на одно api - по факту одна строка с разной концовцовкой и один и тот же fetch, его хотелось бы видеть в отдельной функции)
и рендер карточек вынести отдельно - это вот прям вообще заметно сократит код
_
Еще у тебя похоже что нет удаления карточек перед фильтрацией - хотелось бы чтобы было добавлено )) и ui не нагромаждалась
HW 3
TASK 3
let createEmployesFromArr = (arr) => {
let arrayContainer = [];
const result = [];
for (let i = 0; i < arr.length; i++) {
let keys = Object.values(arr[i]);
arrayContainer.push(keys);
let obj = new Emploee(...arrayContainer[i]);
result.push(obj)
}
return result;
}
ооооочень сложное и замудреное решение. Вот по проще
return arr.map(item => new Employee(item));
TASK 4
Тоже самое, маp - супер, но push. - лишний
TASK 5
Лучше решить нахождение суммы через reduce
№№№ TASK 7
if (typeof (this[key]) !== 'function') {
result += `${key} - ${this[key]}, `;
}
Есть отличный метод obj.hasOwnProperty(key)
HW 6
TASK 7
forEach можно заменить на filter
condidateArr.filter((item) => (+item.registered.split('-')[0] === year))
HW 5
count
- переменная не нужна, ведь есть start
со значениям null или 0 (false), а также start
с каким-то временем (true)
HW1
Почему у тебя ни одна из функций не вызывается? Чтобы показать работоспособность.
Так же у тебя написаны функции, которые принимают какие-то аргументы, тогда в них можно и передавать сразу тестовые данные и можно будет избавиться от лишних глобальных переменных
###TASK 1
Сравнений на 0, null, undefined - лучше избегать
особенно нестрогих сравнений
_
используем только строгое сравнение (===)
и меняем
i % 3 === 0
на !(i % 3)
HW 7
TASK 1
if (!arr.length) {
return 'phone was not found'
}
const arr = arrOfCandidate.filter((item) => parsePhone(item.phone, regExp, '').includes(phoneValue))
TASK 2
const arr = arrOfCandidate.filter((item) => item.id === idValue)
TASK 3
два цикла sort можно слить в 1
if (sortBy === 'desc') {
arr.sort((a, b) => {
if (sortBy === 'asc') {
return parseBalance(a.balance) - parseBalance(b.balance);
}
return parseBalance(b.balance) - parseBalance(a.balance);
})
}
HW 2
TASK 2
amount
должен передаваться в качестве аргумента функции, а не локальной переменной, чтобы сделать фукнцию более обобщенной
TASK 3
Поиск минимального значения массива можно решить через Math.min()
Math.min.apply(null, [1,2,3]); // 1
Math.min(...[1,2,3]); // 1
Поиск следующего минимального значения массива можно так же решить через Math.min, но исключив предыдущее минимальное значение из массива
__
Не хватало проверок на валидность данных передаваемых в функции в тасках
Module
Очень забавно у тебя все на англ, а кнопки "Добавить" и "Изменить" на русском :) почему?)
События не делятся нажаль
_
render events функция очень сложная, ты прям пошел по оч сложному пути цикл в цикле и я говорила, что innerHTML неочень хорошая практика. В одной домашке я разрешила это в качестве исключения, но в целом ленится не стоит, а стоит добавлять через append. К тому же у тебя внутри цикла есть if/else с повторяющимся куском кода, который можно было бы вынести в отдельную функцию
__
object.forEach - это что-то новенькое))) что там по понятным обозначениям переменных ?))
let obj = eventLists.findIndex((item) => {
if (item.title === e.target.dataset.title) {
return item;
} else {
return false;
}
})
вот эта функция мне совсем-совсем не нравится - у тебя метод findIndex, который должен возвращать число, возвращает объект или boolean, что записывается в переменную obj. Очень легко потеряться в типах данных и запутаться в твоем коде.
Пожалуйста никогда не делай такой код, который может возвращать разные типы данных
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.