在 javascript 中需要适当的流量控制逻辑条件

need proper flow control logical condition in javascript

以下是我的真实情况table(需要OP输出)

X   |   Y   |   Z   | OP
--------------------------
F   |   F   |   F   | F 
F   |   F   |   T   | F
F   |   T   |   F   | T
F   |   T   |   T   | T
T   |   F   |   F   | T
T   |   F   |   T   | F *
T   |   T   |   F   | T
T   |   T   |   T   | T
--------------------------

这是我的流程控制逻辑

IF(X === TRUE || Y === TRUE) {
    IF(Z === TRUE && Y === FALSE) {
        OP = FALSE
    } ELSE {
        OP = TRUE
    }
}
IF(X === FALSE || Y === FALSE) {
    OP = FALSE
}

但它在 * 条件下失败。有人可以建议我一个正确的逻辑方法来解决这个问题

OP = Y || (X && !Z)

也就是说,只要 Y 为真,或者当 X 为真但 Z 不为真时,输出为真。

function test(x, y, z) {
  var op = y || (x && !z)
  console.log(x, y, z, op)
}

test(false, false, false)
test(false, false, true)
test(false, true, false)
test(false, true, true)
test(true, false, false)
test(true, false, true)
test(true, true, false)
test(true, true, true)