• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy moge umiescic sam znak dzielenia/mnozenia/dodawania itp jako zmienna?

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
+2 głosów
130 wizyt
pytanie zadane 10 lutego w JavaScript przez wodoyo Początkujący (480 p.)

W jaki sposob moge zapisac znak mnozenia lub dodwania tak aby przypisac inna wartosc dla wartosci w array?

chce zrobic cos w stylu:


 

Const znak dzielenia = /

Const znak mnozenia = *

i pozniej umiescic mnozenie/dzielenie w kodzie w zaleznosci ktorej zmiennej uzyje . Jak to zrobic?

 

2 odpowiedzi

+2 głosów
odpowiedź 10 lutego przez Wiciorny Ekspert (259,950 p.)
wybrane 21 lutego przez wodoyo
 
Najlepsza

To mozesz zapisać tylko jako 'jakis typ', w tym wypadku typ jako literał 
Np. poprzez przypisanie operatorów matematycznych jako zmiennych tak jak to mniej wiecej masz tylko nie określiłeś typu  i użycie ich w dalszym kodzie:
 

const multiplicationSign = "*"; // mnozenie
const additionSign = "+";

let numbers = [1, 2, 3, 4];

let result = 0;

for (let i = 0; i < numbers.length; i++) {
    if (multiplicationSign === "*") {
        result *= numbers[i];
    } else if (additionSign === "+") {
        result += numbers[i];
    }
}

console.log(result);

tak bezpośrednio jako matematyczny operator tego nie użyjesz dobrze.
Zmienna może być operatorem, ale trzeba pamiętać że niektóre operatory (takie jak + czy -) są też używane jako operatory łączenia tekstu. W takim przypadku, aby użyć operatora jako operacji arytmetycznej, należy go umieścić w nawiasach.

 

const multiply = "*";
const x = 5;
const y = 10;
console.log(x + multiply + y); // "5*10"
console.log((x) * (y)); // 50

 

0 głosów
odpowiedź 10 lutego przez VBService Ekspert (242,090 p.)
edycja 10 lutego przez VBService

Możesz jeszcze użyć eval, ale musisz być pewny, że zmienne zawierają "bezpieczne" dane (wartości)

[ on-line ]

const operation = "*",
      x = 5,
      y = 10;

console.log(eval(`${x} ${operation} ${y}`));
console.log(eval(x + operation + y));

lub np.

const example_second_number1 = document.querySelector('#example-second #number1'),
      example_second_number2 = document.querySelector('#example-second #number2'),
      example_second_operation = document.querySelector('#example-second #operation'),
      example_second_equal = document.querySelector('#example-second button'),
      example_second_result = document.querySelector('#example-second span');

example_second_equal.onclick = function() {
  const notation = example_second_number1.value
                 + example_second_operation.value
                 + example_second_number2.value;
  example_second_result.textContent = eval(notation);
};

 

podane powyżej przykłady ukazują zasadę działania eval, ale nie zawierają żadnej walidacji danych.

Podobne pytania

+1 głos
0 odpowiedzi 134 wizyt
0 głosów
1 odpowiedź 114 wizyt
0 głosów
1 odpowiedź 227 wizyt

91,832 zapytań

140,506 odpowiedzi

316,995 komentarzy

61,163 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...