Den
Валидаторы какие то
Den
Александр
да удобно становится, когда начинает функциями мыслить, а не императивно)))
Александр
Ну т.е. внутри forEach функция обработчик) а обычный for - это императивная реализация) В примере от Den можно было и обычный for использовать) Разницы кроме того, что читается пор разному - никакой)
Den
Я обычный for я еще реже использую
Den
У нас есть пару мест в проекте с криптографией
Den
вот там пригодился обычный for
Александр
Я обычный for я еще реже использую
Я использую когда нужно return сделать function blabla() { for(){return} //выйдет из функции blabla } а в forEach не выйдет)
Den
Типо ретурн - когда нашел нужный элемент?
Den
find findIndex подойдет
Den
includes some
Den
Александр
Den
Ну тут тупо find)
Александр
Den
А это поиск по объекту
Александр
А это поиск по объекту
да не, я ошибся) Но по объекту тоже можно)
Den
ну ок
Александр
Александр
Вопрос декларативности и переиспользования кода)
Александр
А если более сложная логика? В каждой строке писать условие? Ну типа нужно еще длинну имени взять и чтобы первая буква на A начиналась) Ну и тп)
Den
Скинь текстом
Александр
Скинь текстом
const userList = { "Anya": { age: 5, sex: 'female' }, "Sasha": { age: 6, sex: 'male' }, "Pasha": { age: 7, sex: 'male' }, } function getUsersBySex(users, sex) { let filteredUsers = []; for (const [key, data] of Object.entries(users)) { if (data.sex === sex) filteredUsers.push({ ...data, name: key }) } return filteredUsers; } let males = getUsersBySex(userList, 'male'); let females = Object.entries(userList) .filter(([key, data]) => { if (data.sex === 'female') return true return false }) .map(([key, data]) => { return { ...data, name: key } }) console.log(males, females)
Den
Вот по первому кейсу как бы я сделал
Den
А там еще обратное преобразование
Александр
Вот по первому кейсу как бы я сделал
Есть еще один маленький но нюанс, хотя на производительность он не сильно влияет при малых массивах данных. Когда Object.entries().filter().map() - это грубо O(3n) А через обычный for - O(2n)
Den
Чот тип такого крч
Den
Что через for можно писать более эффективный код. Но я туда не лезу, пока нет потребности в оптимизации. Излишняя оптимизация в ущерб читаемости и лаконичности кода только вредит)
Den
Ну на мой взгляд.
Den
В рабочем коде
honey
разрешите утащить стикеры
Den
Тащи)
honey
Александр
Александр
Еще через reduce можно и будет O(2n) так же)
Александр
Но по мне reduce не очень хорошо читаемый)
Den
Чем проще читать код - тем лучше крч. Потом если понадобиться оптимизировать, тебе или другим людям будет проще разобраться в чем там дело)
Den
Надо еще учитывать не только, насколько код эффективен в определенном месте, а то, насколько часто он используется
Den
Если это какой то ключевой участок, который будет очень часто использоваться. Имеет смысл его оптимизировать. А если редкий кейс, туда редко кто попадет по сценарию, то можно не париться особо, из-за лишних 200мс прироста
Den
Александр
Чистый код и читаемость на первом месте
Александр
Можно так наоптимизировать, что потом не разберешься, что написано)
Александр
Почти всегда дешевле сервак помощнее поставить, чем платить разрабу за лишние 2 недели работы)
Den
Ну я пока только учусь писать чисто. Как бы частый кейс на созвоне. Денис ты там написал сервис, нихуя не понятно, но очень интересно)
Александр
а то и месяцы)
Den
Den
Но задача разраба тоже - указать на места, которые нужно будет оптимизировать в будущем
Den
иначе затраты вырастут сильнее чем зарплата разраба, который будет латать эти дыры)
Den
Можно постоянно чот новенькое находить и совершенствоваться. Проблема только с тем, что далеко не все твои коллеги следуют тому же пути ,а ты не можешь тратить много времени на рефакторинг говнокода, который увидел по пути решения своей таски
Den
Я лично выделяю процентов 20-30% времени только на рефакторинг в таске (если по пути попалось чот), остальное если вижу - завожу уже issues на гитлабе
Den
Иначе таску буду год сдавать
Den
honey
скажите пожалуйста, почему дисплей: инлайн-блок не строит мне элементы в строку?
honey
в доке написано что дисплей в значении инлайн-блок должен строить элементы в строку.
honey
вот дока
honey
так в примере в доке ul - блочный. li - тоже блочный.
Александр
display - определяет как отображается конкретный элемент. В твое случае div которому класс присвоен
Александр
@Tasvetla
honey
@Hide14 как можно скрыть закрепленное сообщение? кнопочки-крестика нет (закрепленное сообщение очень много места у меня занимает )
honey
@Tasvetla
я попробовала навешать дисплей в значении инлайн-блок дочернему элементу, но он не прыгнул в строку, а остался под предыдущим дочерним элементом
Hide
Ты там с чего сидишь? С пылесоса у которого экран 60 * 40 пикселей?))
honey
Ты там с чего сидишь? С пылесоса у которого экран 60 * 40 пикселей?))
извини ._. я просто увеличила изображение. масштаб 150%. А то не видно ничего ._.
Александр
я попробовала навешать дисплей в значении инлайн-блок дочернему элементу, но он не прыгнул в строку, а остался под предыдущим дочерним элементом
Прям в браузере поиграйся, поназначай разные значения display разным дочерним элементам, а потом потом корневому элементу
Лира
помогите, пожалуйста, я счас помру
Лира
там практика на условия
Hide
Чето с массивами надо наверное
Александр
Лира
и я как-то не догоняю как это писать через if
Лира
БЛЯТь точно
Лира
Хдддддд