How can I shorten if else statement inside every() callback function?

Viewed 40

I would like to shorten following code:

const tickersValid = arrayStocks.every((ticker) => {
    const { error } = schemaTicker.validate(ticker);
    if(error) {
         // console.log('Joi error msg:', error.details[0].message);
         return false
    } else {
         return true;
    }
});

I tried (error) ? true : false which didn't work.

2 Answers

You mean this?

    const { error } = schemaTicker.validate(ticker);
    return !error;

If you want simplify your piece of code. If error is true you return false and when error is false you return true, so, you return !error.

Simplify in this way:

return (!error);

Anyway, inside every callback you can set bool variable and return it. Simply example:

const func = function(){
  let res = false;
  //... imagine complex condition
  condition ? res = true : res = false;
  //retur res. 
  return res;
}

Related