Javascript: каков наилучший вариант выполнения нескольких истинных функций?

Мне нужно запустить функцию, которая будет проверять наличие нескольких значений одновременно и запускать все функции, которые возвращаются как оператор true.
Эти значения переплетены, и если/ELSE не может этого сделать, он останавливается на первом коде, который возвращает значение true.
Где мне нужно это, чтобы спуститься и проверить, если больше таких строк IF также может быть истинным, то запустите их также.
Наконец, если он выполняет весь список параметров и все возвращают как false, то он должен выполнить все ложные строки кода.

Причина в том, что я создаю дерево навыков.
Это дерево ветвится и ветвится вместе в точках вдоль дерева.

Мое лучшее предположение-объединить коммутатор с массивом, но это сложнее, чем все, что я запрограммировал, поэтому я не уверен.
К сожалению, каждый учебник, который я нахожу с коммутатором, имеет конец коммутатора после того, как он возвращает одно значение true и выполняет одну функцию.

образец

Если true выполнить функцию

Если true выполнить функцию

Если false игнорировать

Если false игнорировать

Если false игнорировать

Если true выполнить функцию

Если false игнорировать

Если false игнорировать

Если все были false выполнить функцию








2 ответа

  1. Если я правильно понимаю, вы хотите знать, если:

    либо некоторые тесты истинны

    var someTrue = ArrayOfFunctionTests.some(function(test) {
        return test()
    })
    

    или каждый тест ложен

    var allFalse = ArrayOfFunctionTests.every(function(test) {
        return !test()
    })
    

    Они оба одинаковы.

  2. var tests = [true, false, true, false], // test results
        funcs = [act0, act1, act2, act3],   // functions to conditionally run
        allFalse = true
    
    tests.each(function(result, index) {
        if (result) funcs[index]()          // conditionally run function
        if (result) allFalse = false        // not allFalse if any is true
    })
    
    if (allFalse) finalFunction()           // final condional function