Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查数组成员是否为true_Javascript_Jquery_Arrays_Boolean - Fatal编程技术网

Javascript 检查数组成员是否为true

Javascript 检查数组成员是否为true,javascript,jquery,arrays,boolean,Javascript,Jquery,Arrays,Boolean,当有一个简单的布尔值时,在以下条件下使用它很简单: var running = true; if(running) {/*do something*/} 使用boolen数组有什么技巧吗?大概是这样的: var running = [false,false,true,false]; if(running[]){/*do something*/} 目前我是这样做的: var uploading = false for(i=0; i< running.length

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

var running = true;
if(running) {/*do something*/}
使用boolen数组有什么技巧吗?大概是这样的:

var running = [false,false,true,false];
if(running[]){/*do something*/}
目前我是这样做的:

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

            if(uploading)
var上传=false
对于(i=0;i

但我觉得这并不是真正完美的代码,他们可能是一些技巧,速记方法。。可以是纯javascript,也可以是Jquery,Jquery具有
$。inArray
方法:

uploading = $.inArray(running, true) !== -1;
名称有点误导,它返回匹配元素的索引(
-1
如果没有)

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

uploading = running.indexOf(true) !== -1;
从ES5开始,JavaScript就有了
Array#一些
方法,但是如果您可以使用上述任何一种方法来查找特定的值,那就太过分了。尽管如此,如果您需要对这些值进行按摩,它还是很有用的。例如,如果任何“truthy”值都正常,而不是明确的
true

uploading = running.some(function(entry) { return !!entry; });

jQuery具有
$。inArray
方法:

uploading = $.inArray(running, true) !== -1;
名称有点误导,它返回匹配元素的索引(
-1
如果没有)

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

uploading = running.indexOf(true) !== -1;
从ES5开始,JavaScript就有了
Array#一些
方法,但是如果您可以使用上述任何一种方法来查找特定的值,那就太过分了。尽管如此,如果您需要对这些值进行按摩,它还是很有用的。例如,如果任何“truthy”值都正常,而不是明确的
true

uploading = running.some(function(entry) { return !!entry; });
您只需使用以下功能:

uploading = running.indexOf(true) !== -1;
如果数组不包含
true
indexOf
将返回-1,导致
中出现
false
!==-1
。如果数组包含
true
indexOf
将返回它的索引,从而产生
true

略短的选项:

uploading = !!~running.indexOf(true);
~
是一个按位的NOT,这将从indexOf中反转值:
-1->0,0->-1,1->-2等
。然后是双
首先将此值强制转换为布尔值,然后再次将其反转,结果是布尔值输出为
true
,然后数组包含
true

,您可以使用以下方法:

uploading = running.indexOf(true) !== -1;
如果数组不包含
true
indexOf
将返回-1,导致
中出现
false
!==-1
。如果数组包含
true
indexOf
将返回它的索引,从而产生
true

略短的选项:

uploading = !!~running.indexOf(true);

~
是一个按位的NOT,这将从indexOf中反转值:
-1->0,0->-1,1->-2等
。然后是双
首先将此值强制转换为布尔值,然后再次将其反转,结果是布尔值输出为
true
,然后数组包含一个
true

,我刚刚想到了在这种情况下可以使用的小技巧:

uploading = !!Math.max.apply(null, [false, true, false, false]); // => true
基本上没有
路径您将获得
1
(如果至少有一个
true
)或
false
(对于数组中的所有
false
Max
为每个传递的参数调用
ToNumber
,因此
true
=>
1


注意:您最好使用
indexOf
,这只是为了好玩,也是为了演示另一种不明显的方式。

我刚刚想到了在这种情况下可以使用的小技巧:

uploading = !!Math.max.apply(null, [false, true, false, false]); // => true
基本上没有
路径您将获得
1
(如果至少有一个
true
)或
false
(对于数组中的所有
false
Max
为每个传递的参数调用
ToNumber
,因此
true
=>
1


注意:您最好使用
indexOf
,这只是为了好玩,也是为了演示另一种不显眼的方式。

上传=~running.indexOf(true)
如果您想要一个布尔结果函数
running.indexOf(true)>-1
。是的,如果
索引是
0
,那仍然是
false
。A
=或其他操作员似乎确实是必要的。
上传=~running.indexOf(true)
如果您想要一个布尔结果函数
running.indexOf(true)>-1
。是的,如果
索引是
0
,那仍然是
false
。A
=
或其他一些操作符似乎是必需的,确实是.JavaScript,你在干什么?JavaScript,stahp!我不知道这几乎是可能的:DJavaScript,你在干什么?JavaScript,stahp!我不知道这几乎是可能的:DIt很容易包含一个多边形填充。它很容易包含一个多边形填充。