Dynamischer Operator

BocaSpanky

Mitglied
//JQuery

Hi,

Ich würde einen Operator via data auslesen (data-amount):

HTML:
<i class="cs-amountIcon far fa-plus" data-amount="++" title="%text_Titel_Menge_Plus%"></i>
<i class="cs-amountIcon far fa-minus" data-amount="--" title="%text_Titel_Menge_Minus%"></i>

Javascript:
var operator = $(this).data('amount');

Jetzt würde ich gern ohne eine if else Anweisung eine bestimmte Variable ++ oder --.

Leider weiß ich nicht nach was ich genau googlen soll.
So in etwa:

Javascript:
var amount = $('.amountInput').val();
amount[operator];
$('.amountInput').val(amount);
 

Andreas-B

Mitglied
Versteh' ich das richtig, dass du einen String in einen Operator Casten möchtest?

Warum willst keine if else Anweisungen dazu verwenden?
Wenn du das dynamisch machst (und das ist möglich) hast du die schönste Sicherheitslücke gebastelt, die du dir vorstellen kannst.
Mit if else bist du vor allen manipulierten Einträgen sicher.
 

BocaSpanky

Mitglied
Vielleicht wärs trotzdem gut wenn du mir sagen könntest wie das funktionieren würde. Rein Interessehalber. Danke schonmal.
 

Andreas-B

Mitglied
Aber nur unter dem Gesichtspunkt "so ist es möglich":

Du kannst das mit eval umsetzen:

Javascript:
/*
!!!Warnung eval is evil
Nur zu Demonstrationszwecken der JavaScript Engine.
Nicht in Produktionscode verwenden!!!!
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#never_use_eval!
*/

const op = '++';
let nr = 10;

eval('nr' + op);

console.log(nr); // 11