Я использую скрипт для ввода выбора музыкальной ноты (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 получили одинаковый результат?
Спасибо за чтение этого длинного вопроса! Любой совет приветствуется.