正确添加OR逻辑运算符

时间:2019-10-18 03:42:17

标签: javascript checkbox logical-operators

我正在使用一个脚本通过复选框输入音符选择(C,C#等)以查找和弦的名称。一个八度音阶可以完美地工作。

我有12个复选框,其中以以下字符串为例:

if (
    cb[0].checked == true
    && cb[1].checked == false
    && cb[2].checked == false
    && cb[3].checked == false
    && cb[4].checked == true
    && cb[5].checked == false
    && cb[6].checked == false
    && cb[7].checked == true
    && cb[8].checked == false
    && cb[9].checked == false
    && cb[10].checked == false
    && cb[11].checked == false
) {
    alert('C');
}

当选中C0,C4和C7框时,这很好用,当然,当选中其他任何组合时,也不能。

现在,我想添加一个额外的八度。我添加了第13个框(C12)作为C0的可选替代方案。

我尝试如下添加||运算符:

if(cb[0].checked==true||cb[12]==true&&cb[1].checked==false...

但这不起作用。

奇怪的是,仅将框C12添加到页面中而根本不更改脚本字符串,当我选择框C12,C4和C7时,我得到的结果警报为'G♯/ A♭m',我只应该为此字符串:

else if (
    cb[8].checked == true
    && cb[9].checked == false
    && cb[10].checked == false
    && cb[11].checked == true
    && cb[0].checked == false
    && cb[1].checked == false
    && cb[2].checked == false
    && cb[3].checked == true
    && cb[4].checked == false
    && cb[5].checked == false
    && cb[6].checked == false
    && cb[7].checked == false
) {
    alert('G♯/A♭m');
}

我不理解,因为该字符串不包含cb [12],并且仅需要3个true复选框中的2个。

有没有正确的方法可以添加此||cb[12]==true线程,以便C0或C12获得相同的结果?

感谢您阅读这个冗长的问题!任何建议表示赞赏。

0 个答案:

没有答案