user2872841
user2872841

Reputation: 101

Check both conditions in an if statement even if the first one is false

I have two statements in an if block that both link to a function that will return a bool. Both statements must be true for the code to run but I want them both to be checked even if the first one is false. The relevant code:

if (myFunc(one) && myFunc(two)) {
    //execute
}

myFunc will execute some code before returning false, but this code is not executed on two if one returns false.

I got this to work, but it feels like a hack:

if ((myFunc(one) && myFunc(two)) || (myFunc(two) && myFunc(one))) {
    //execute
}

Does anyone have a better solution? Thanks!

Upvotes: 4

Views: 5119

Answers (2)

André Junges
André Junges

Reputation: 5367

use the & operator

take a look at this example

function a (){
    console.log(1);
    return true;
}

function b (){
    console.log(2);
    return false;
}

if(b() & a() == true){
console.log('asas');
}

Upvotes: 1

VisioN
VisioN

Reputation: 145478

Another way:

var first = myFunc(one),
    second = myFunc(two);

if (first && second) {
    //execute
}

In this case both will be executed first and checked for non false values later.

Upvotes: 4

Related Questions