Вызовите один набор кода JS вместо другого

#javascript #arrays #if-statement #radio-button

Вопрос:

У меня есть калькулятор/конвертер RF в L-диапазон, который я разрабатываю и разрабатываю для своей работы в FT. Теперь C-диапазон стал простым, так как мы используем только один частотный диапазон. Диапазон KU у нас есть 2 частотных диапазона. Поэтому для этого калькулятора я хочу использовать переключатели. Когда инженер проверяет Радио 1, они используют функции, закодированные для этого диапазона частот, если они проверяют Радио 2, они используют функции, закодированные для этого диапазона частот.

Что я могу сделать, чтобы вызвать это, когда радио проверено?

Должен ли я создать массив переменных, которым назначаются функции? Я довольно новичок в JS. Так что дайте мне знать, если я не совсем ясно выразился. ТИА.

Комментарии:

1. у каждого калькулятора есть функция, которая будет вмешиваться в данные.. if(button.checked){calculatorFunction_1(your_data)} else{calculatorFunction_2(your_data)} кроме того, где находится код? в чем заключаются ошибки?

2. Я еще не зашел так далеко. Я спрашивал о каком-то направлении, прежде чем опробовать его. Я заполню код, если он сработает, или если нет.

Ответ №1:

NVM. Я думаю, что нашел обходной путь.

Я буду использовать «Если a-это проверка var b = freqOne, иначе b = freqTwo».

Комментарии:

1. Это также возможно, но если вы сопоставите имена функций со значениями радио, то ваше решение будет проще в обслуживании и более элегантным, пожалуйста, смотрите мой ответ.

2. Вы можете оставить это в качестве комментария только для OP, так как вы также не уверены, сработает ли это

Ответ №2:

Вы можете сопоставить имена функций со значениями переключателей

 function foo() {  console.log("foo was called"); }  function bar() {  console.log("bar was called"); }  function loremipsum() {  console.log("loremipsum was called") }  function test(item) {  window[item.value](); } 
 lt;labelgt;Foo lt;input type="radio" name="something" value="foo" onclick="test(this)"gt;lt;/labelgt; lt;labelgt;Bar lt;input type="radio" name="something" value="bar" onclick="test(this)"gt;lt;/labelgt; lt;labelgt;Lorem lt;input type="radio" name="something" value="loremipsum" onclick="test(this)"gt;lt;/labelgt; 

Комментарии:

1. ОК. Мне нужно уточнить: В каждом калькуляторе уже есть 3 функции: Функция восходящей связи Функция нисходящей связи Функция нисходящей связи для L-диапазона восходящей связи, поэтому переключатель будет указывать странице использовать этот набор функций вместо этого набора функций. Вот почему я просто изменю значение частоты с помощью логического значения. Его все статические формулы, кроме входных данных, которые представляют собой диапазон.

2. @CurtisRosler можете ли вы отредактировать свой вопрос с помощью кода, чтобы я мог изучить его? Я действительно верю, что мы решаем одну и ту же проблему. Но блоки if-else не очень просты в обслуживании, особенно если значения меняются со временем.