Условный логический оператор с использованием четырех переменных - PullRequest
1 голос
/ 11 июля 2019

У меня есть функция, которая возвращает условие, используя четыре переменные.

(payload, variables) => {
   return payload.newMessage.lenderId === variables.lenderId && payload.newMessage.user.id === variables.authId
 }

Я хочу сказать, что C === D - это только если существуют C и D. Какое оптимальное выражение для этого? Таким образом, A === B является достаточным условием, если C и D не существуют, но если C и D существуют, A === B и C === D оба должны быть выполнены.

Ответы [ 2 ]

3 голосов
/ 11 июля 2019

A и B всегда должны быть равны, и одно из следующих должно быть истинным:

  • Нет C
  • Нет D
  • Cи D равны

(A === B) && (!C || !D || C === D)

Помимо этой конструкции, вы должны знать, что вы подразумеваете под "существует" - достаточно ли того, что они не будут undefined?Это правда?Etc.

0 голосов
/ 11 июля 2019
function customCheck(a,b,c,d) {
  const abComparison = a === b;

  if (c && d) {
    return abComparison && (c === d);
  }

  return abComparison;
}

Из вашего описания что-то похоже выше?

...