-1

I am a total beginner in Javascript and trying to edit an existing code. My goal is to add multiple statements for when to show some graphics.

var unique1 = ['TRIGGER','d2','d3'];
var unique2 = ['d1'];
var unique3 = ['TRIGGER'];
var out1 = ['TRIGGER','d2','d2','d3'];
var out2 = ['d1'];
var out3 = ['TRIGGER'];

<div className="block">
    { out1.indexOf('TRIGGER') < 0 || unique1.length > 1 && (
        <div className="class1">
        </div>
    )}
    { out2.indexOf('TRIGGER') < 0 || unique2.length > 1 && (
        <div className="class2">
        </div>
    )}
    { out3.indexOf('TRIGGER') < 0 || unique3.length > 1 && (
        <div className="class3">
        </div>
    )}
</div>

Expected output:

<div className="block">
        <div className="class1">
        </div>
        <div className="class2">
        </div>
</div>

The output I get:

<div className="block">
        <div className="class1">
        </div>
</div>
aurelius
  • 448
  • 7
  • 23
  • Does this answer your question? [Which Logic Operator Takes Precedence](https://stackoverflow.com/questions/11157814/which-logic-operator-takes-precedence) – Emile Bergeron Feb 09 '21 at 16:36

1 Answers1

2

Try using parentheses like this:

{ (out1.indexOf('TRIGGER') < 0 || unique1.length > 1) && (
    <div className="class1">
    </div>
)}
Jan Krupiński
  • 291
  • 2
  • 8