首页 > 解决方案 > 我需要这样做,如果 parent1 !== 和 parent 2 是 !== 那么它返回 true,如果它们中的任何一个是 atm !== 它返回 true

问题描述

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

编辑:我需要这样做,如果 parent1 !== 和 parent 2 是 !== 那么它返回 true,如果它们中的任何一个是 atm !== 它返回 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 的建议非常有效!非常感谢。

标签: javascript

解决方案


结合条件||

    if ((parent1 && (_state[tree][parent1] !== _talents[tree][parent1].ranks)) ||
        (parent2 && (_state[tree][parent2] !== _talents[tree][parent2].ranks))) {
        return false;
    } else {
        return true;
    }

此外,if/then只返回 true 或 false 的 an 可以写为单个return语句。

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

推荐阅读