Джава Скрипт Сравнить значения с помощью содержимого из select

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 2 июля 2020 в 22:41
Всем привет, нужна наводка желательно без решения, хочу сам разобраться. Тему неверно назвал, нужно вычислить содержимое из инпутов. с помощью select

  1.  
  2. let qw = document.querySelector(".i-101");
  3. let qу = document.querySelector(".i-102");
  4.  
  5. let qе = document.querySelector(".i-103");//селект +, -, *, /
  6.  
  7. function f10() {
  8. let qww = +qw.value;//результат из инпут
  9. let qyy = +qy.value;//результат из инпут
  10. let qee = qe.value;//результат из селекта
  11. let itog = ;
  12. document.querySelector(".out-10").textContent = ;
  13. }
  14.  
  15. document.querySelector('.b-10').onclick = f10;
  16.  
  17.  
Задачка: Значения из инпутов нужно сложить, умножить, отнять либо поделить. В зависимости от того что выбрано в select.

Не могу понять как решить задачу с помощью оператора if. Не понимаю что делать с переменной qee, она получила данные из selecta а как их дальше использовать не понимаю).

Идея была и без if
  1.  
  2. let itog = qww qee qyy;
  3. document.querySelector(".out-10").textContent = itog;
  4.  
но это бред)))
#2 2 июля 2020 в 22:58
Заралик,
Так выводите эти значения в консоль console.log(что выводить)
И сразу видно будет, что куда.
#3 2 июля 2020 в 23:24
Заралик, switch в помощь learn.javascript.ru/switch
Я понимаю, в чем сложность. Обмануть систему не получится и заставить ее видеть в полученном из селекта операцию нельзя. JS видит строку. И вам надо с помощью switch перебрать все совпадения и в этих совпадениях производить расчеты.
#4 3 июля 2020 в 00:33


Заралик, switch в помощь learn.javascript.ru/switch
Я понимаю, в чем сложность. Обмануть систему не получится и заставить ее видеть в полученном из селекта операцию нельзя. JS видит строку. И вам надо с помощью switch перебрать все совпадения и в этих совпадениях производить расчеты.

Zau4man

Разве в его случае есть разница if или switch. Он в принципе не поймёт, как условие прописать.


Заралик, тебе нужно в функции f10, после получения данных из элементов, написать условие (если qee === '*', то itog = qww * qyy) и так через else if дальше все варианты селектора прописать. Ну или использовать свитч. В принципе разницы нет.
#5 3 июля 2020 в 00:38
function f10(qw, qy, qe) {
let qww = +qw.value;//результат из инпут
let qyy = +qy.value;//результат из инпут
let qee = qe.value;//результат из селекта
let itog;

Если (qee === '*') {
itog = qww * qyy;
} но если (qee === '+') {
itog = qww + qyy;
} но если (qee === '-') {
itog = qww — qyy;
}

document.querySelector(".out-10").textContent = itog;
}


document.querySelector('.b-10').onclick = f10(qw, qy, qe);
#6 3 июля 2020 в 06:50
Ris, Vunderkind, Zau4man, Всем спасибо, я все понял. Задача действительно легкая, почему то я подумал что нельзя прописать значения арифметический знак из select прямо в условие для сравнения. Думал его как то скрыть надо (к примеру в переменную поместить а потом работать с ним) вот тут и тупанул))
#7 3 июля 2020 в 07:53

почему то я подумал что нельзя прописать значения арифметический знак из select прямо в условие для сравнения.

Заралик
Можно. Для этого есть функция learn.javascript.ru/eval, но там надо жестко следить, что попадает в эту функцию.
#8 3 июля 2020 в 09:42
Loadырь, Отлично, спасибо тему закрываю.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.