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

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

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

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

10 ответов

7 просмотров

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

Кот Чеширский- Автор вопроса
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. Соответственно если мы не найдем нужную замену символу в объекте, то мы вернем изначальный контент - то, что прописано справа от оператора ??

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

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

@Aiwan что такое база образца?
Alexey
27
Не многие знают, а кто знает, тот уже успел забыть, что в далёком 2004 году эта игра произвела настоящий фурор, настолько революционной была технология, применяемая для её соз...
ICCID
4
Хотя у меня сейчас есть более сложная задача, вот её думаю: как объяснить челу переходного возраста противоположного полу, обучающегося в польском колледже (а-ля наш техникум)...
Вячеслав Кузьменко
15
коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
30
верно что я могу удалить эти addq и subq т.к. со стеком никакого взаимодействия нет (исключая call)?
Michael
16
Hi Everyone! To all Are you Looking for Interview Support at the Lowest Price? Look no further! Then contact us We offer Interview Support for a low cost variety of technol...
Rambabu Nallamilli
3
средствами IBX как-то можно выполнить запрос insert ... returning?
Igor
31
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
53
А если изначально бот работал так : есть сайт онлайн школы. У каждого ученика свой кабинет. Где он авторизуется по своим данным. И уже в кабинете, на самом сайте делает оплату...
Денис 💡 Фрилансер
13
Карта сайта