Giter Club home page Giter Club logo

home_works's Introduction

Home_works

home_works's People

Contributors

mandragoora avatar

Watchers

 avatar

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 photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.