https://jsfiddle.net/bhanusingh/7fxet35h/9/
Не вкладывайте свои if.Просто напишите четыре if, как в описании проблемы, и сделайте вспомогательную функцию, чтобы ее было легче читать.
Ниже приведен псевдокод, где числа представляют ссылки на флажки.isAnySelected - это вспомогательная функция, которая принимает список ссылок на флажки и возвращает true, если установлены какие-либо из этих флажков.
if (isAnySelected([1,2,3]) )
return IT1
if (isAnySelected([4,5,6,7]) AND isAnySelected([1,2,3]) )
return IT2
if (isAnySelected([8]) AND NOT isAnySelected([9]))
return IT3
if (isAnySelected([9]) AND isAnySelected([1,2,3,4,5,6,7,8]))
return IT4
Обратите внимание, что я добавил правило "not 9" в # 3, чтобы выбрать 8 и 9производит IT4
Решено на Reddit: https://www.reddit.com/r/learnprogramming/comments/bpukvf/i_got_a_very_complex_problem_for_me_i_can_only/enxst62?utm_source=share&utm_medium=web2x