• 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?

+2 głosów
348 wizyt
pytanie zadane 10 lutego 2023 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 2023 przez Wiciorny Ekspert (282,580 p.)
wybrane 21 lutego 2023 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 2023 przez VBService Ekspert (256,600 p.)
edycja 10 lutego 2023 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 307 wizyt
0 głosów
1 odpowiedź 187 wizyt
0 głosów
1 odpowiedź 463 wizyt

93,629 zapytań

142,551 odpowiedzi

323,052 komentarzy

63,134 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 1936p. - dia-Chann
  2. 1916p. - DziarnowskiJ
  3. 1886p. - Łukasz Piwowar
  4. 1868p. - CC PL
  5. 1842p. - Maurycy W
  6. 1841p. - raydeal
  7. 1840p. - Adrian Wieprzkowicz
  8. 1782p. - rucin93
  9. 1701p. - rafalszastok
  10. 1588p. - Tomasz Bielak
  11. 1521p. - Michal Drewniak
  12. 1491p. - Rafał Trójniak
  13. 1444p. - robwarsz
  14. 1257p. - ssynowiec
  15. 1208p. - Mariusz Fornal
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...