Javascript 我需要这样做,如果父母1!==而父2是!==然后返回true,如果其中一个为这是真的

Javascript 我需要这样做,如果父母1!==而父2是!==然后返回true,如果其中一个为这是真的,javascript,Javascript,如果我没有以最好的方式问这个问题,我很抱歉,但是我对编码非常陌生,如果你需要更多信息,请写下来 编辑: 我需要这样做,如果父母1!==而父2是!==然后返回true,如果其中一个为这是真的 var parentIsFull = function (tree, index) { var parent1 = getParentIndex(tree, _talents[tree][index].parent1); var parent2 = getParentIndex(tree, _

如果我没有以最好的方式问这个问题,我很抱歉,但是我对编码非常陌生,如果你需要更多信息,请写下来

编辑: 我需要这样做,如果父母1!==而父2是!==然后返回true,如果其中一个为这是真的

var parentIsFull = function (tree, index) {
    var parent1 = getParentIndex(tree, _talents[tree][index].parent1);
    var parent2 = getParentIndex(tree, _talents[tree][index].parent2);

    if (parent1 && (_state[tree][parent1] !== _talents[tree][parent1].ranks)) 
    if (parent2 && (_state[tree][parent2] !== _talents[tree][parent2].ranks))

        return false;
    return true;
};
更新:
Barmar的建议非常有效!非常感谢。

将这些条件与
|

    if ((parent1 && (_state[tree][parent1] !== _talents[tree][parent1].ranks)) ||
        (parent2 && (_state[tree][parent2] !== _talents[tree][parent2].ranks))) {
        return false;
    } else {
        return true;
    }
另外,只返回true或false的
if/then
可以写成一条
return
语句

return !((parent1 && (_state[tree][parent1] !== _talents[tree][parent1].ranks)) ||
         (parent2 && (_state[tree][parent2] !== _talents[tree][parent2].ranks)));

看起来您需要在这里切换
true
false
?当前,当两个条件都满足时执行
return false
,在所有其他情况下执行
return true
。看起来你想要的正好相反。另外,在描述中添加标题问题并加以澄清