169 похожих чатов

Привет. Вопрос: почему при 1 клике по кнопке, у меня в

консоль выводиться сразу около 10 одинаковых сообщений?

это как бы на работу не влияет, просто интересно в чём причина, лога то указано всего 2.

10 ответов

20 просмотров

Жесть ифами наспамил 😳

Кот Чеширский- Автор вопроса
Michael Eydlin
Жесть ифами наспамил 😳

а как сократить и отрефакторить?

Кот Чеширский
а как сократить и отрефакторить?

Да я с телефона, неудобно Мб все и норм, не смотрел подробно

по идее все твои ифы, связанные с key, можно поменять на это: const keyMap = { ‘÷’: ‘/‘, ‘×’: ‘*’, /** тут описываешь все символы, которые нужно промапить во что-то другое **/ } const key = keyMap[e.target.textContent] ?? e.target.textContent

Veli
по идее все твои ифы, связанные с key, можно помен...

а еще есть вариант с присваиванием кнопкам аттрибута вроде data-value. Если data-value есть, то берем его. Если нет, то текст контент, чтобы не задубливать для всех цифр это. Либо можно для консистетности прописать вообще всем и использовать только значение дата-аттрибута на контент не особо корректно опираться, потому что при его изменении будет неявно ломаться логика. И если тебе понадобится изменить контент, то тебе придется лезть и менять логику, которая тут вообще не при чем. Выглядит как нарушение SRP

Кот Чеширский- Автор вопроса
Кот Чеширский- Автор вопроса
Veli
по идее все твои ифы, связанные с key, можно помен...

простите, я пока что не совсем понимаю как работает данная конструкция, и что такое keyMap

Кот Чеширский
простите, я пока что не совсем понимаю как работае...

Это просто объект. Ключи объекта - это те символы, которые ты хочешь заменить. Значения - это те символы, НА которые ты хочешь заменить В текст контенте у тебя лежит как раз то, что ты хочешь в определенных случаях заменить. Поэтому ты пробуешь получить значение по этому ключу в объекте. Если в объекте оно есть, то ты получишь свой заменяющий символ. Если нет - undefined Чтобы обработать undefined, после обращения к объекту используется ?? - этот оператор вернёт свой правый операнд, если левый будет null или undefined. Соответственно если мы не найдем нужную замену символу в объекте, то мы вернем изначальный контент - то, что прописано справа от оператора ??

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта