检查数组成员是否为true

Vin*_*rez 0 javascript arrays jquery boolean

当有一个简单的布尔值时,在条件中使用它很简单:

var running = true;
if(running) {/*do something*/}
Run Code Online (Sandbox Code Playgroud)

使用boolen数组是否有一些技巧?这样的事情:

var running = [false,false,true,false];
if(running[]){/*do something*/}
Run Code Online (Sandbox Code Playgroud)

目前我这样做:

var uploading = false
            for(i=0; i< running.length ; i++)
            {
                if(running[i]) uploading = true;
            }

            if(uploading)
Run Code Online (Sandbox Code Playgroud)

但我觉得这不是真正完美编写的代码,他们可能是一些技巧,速记方法..可能是普通的javascript,可能是Jquery

T.J*_*der 5

jQuery有这个$.inArray方法:

uploading = $.inArray(running, true) !== -1;
Run Code Online (Sandbox Code Playgroud)

该名称有点误导,它返回匹配的元素的索引(-1如果没有).

JavaScript有Array#indexOf,但它在IE8及更早版本中缺失:

uploading = running.indexOf(true) !== -1;
Run Code Online (Sandbox Code Playgroud)

从ES5开始的JavaScript有这种Array#some方法,但是如果你能用上述任何一种方法查找特定值,那就太过分了.尽管如此,如果您需要按摩这些值,它仍然很有用.例如,如果任何"真实"值是可以的而不是具体的true:

uploading = running.some(function(entry) { return !!entry; });
Run Code Online (Sandbox Code Playgroud)