Правильное добавление логического оператора ИЛИ - PullRequest
0 голосов
/ 18 октября 2019

Я использую скрипт для ввода выбора музыкальной ноты (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] и требуется только 2 из 3 true флажков.

Есть липравильно ли я могу добавить эту ||cb[12]==true тему, чтобы C0 или C12 получили одинаковый результат?

Спасибо за чтение этого длинного вопроса! Любой совет приветствуется.

...