Javascript:执行多个真功能的最佳选择是什么?

时间:2017-01-17 04:35:35

标签: javascript arrays if-statement switch-statement

我需要运行一个函数,它将立即检查多个值并运行作为true语句返回的所有函数。 这些值是交织在一起的,IF / ELSE不能这样做,因为它会在第一个返回true的代码处停止。 我需要它去检查是否有更多这样的IF线也可能是真的,然后运行它们。 最后,如果它运行整个选项列表并且所有返回都为false,那么它需要运行所有错误的代码行。

原因是我正在创建一个技能树。 这棵树在树上的点处分支并分支在一起。

我最好的猜测是将开关与数组相结合,但这比我编程的任何东西都要复杂,所以我不确定。 不幸的是,我发现每个使用switch的教程都会在返回一个true并运行单个函数后切换结束。

示例
如果是真正的运行功能
如果是真正的运行功能
如果误忽略
如果误忽略
如果误忽略
如果是真正的运行功能
如果误忽略
如果误忽略
如果都是假运行功能

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你想知道是否:

要么某些测试都是真的

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

或每项测试均为假

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

两者都是一样的。

答案 1 :(得分:0)

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