JQuery或JavaScript-计算有多少数组元素为真/假
我有一个实例,其中可能不同长度的数组可以如下所示JQuery或JavaScript-计算有多少数组元素为真/假,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个实例,其中可能不同长度的数组可以如下所示 Array [ true, false, false, true ] 或 或 我需要遍历一个数组,并且只有当有一个“false”实例时才触发一个新事件 在我提供的示例数组中,只有这一个是有效的 Array [ true, true, true, false, true ] 实现这一点最不复杂的方法是什么?您可以使用Array.filter var arr = [ true, true, true, false, true ]; if(arr.
Array [ true, false, false, true ]
或
或
我需要遍历一个数组,并且只有当有一个“false”实例时才触发一个新事件
在我提供的示例数组中,只有这一个是有效的
Array [ true, true, true, false, true ]
实现这一点最不复杂的方法是什么?您可以使用
Array.filter
var arr = [ true, true, true, false, true ];
if(arr.filter(function(b){ return !b; }).length == 1){
// trigger the event
}
上面的过滤器只包含数组的false
,然后我们检查该数组的长度是否为1
另一种创造性的方法可能是使用replace
和indexOf
,在字符串中替换第一个出现的false
,该字符串是通过连接arr
并检查字符串中是否还有false
,然后用对其求反而形成的代码>运算符以实现结果
if(!(arr.join("").replace("false","").indexOf("false") > -1)){
// trigger
}
您可以使用Array.filter
var arr = [ true, true, true, false, true ];
if(arr.filter(function(b){ return !b; }).length == 1){
// trigger the event
}
上面的过滤器只包含数组的false
,然后我们检查该数组的长度是否为1
另一种创造性的方法可能是使用replace
和indexOf
,在字符串中替换第一个出现的false
,该字符串是通过连接arr
并检查字符串中是否还有false
,然后用对其求反而形成的代码>运算符以实现结果
if(!(arr.join("").replace("false","").indexOf("false") > -1)){
// trigger
}
Amit Joki已经有了一个解决方案,但我只想通过以下方式分享另一个解决方案:
Amit Joki已经有了一个解决方案,但我只想通过以下方式分享另一个解决方案:
我将在一分钟内对此进行测试。看起来它能满足我的需要。谢谢@越来越肯定。很高兴能帮助你。我马上就来测试。看起来它能满足我的需要。谢谢@越来越肯定。很高兴能帮助你。这也是一个很好的建议。谢谢你的参与:)这也是一个很好的建议。谢谢你的参与:)
var count = arr.reduce(function(prevVal, currVal) {
return prevVal + (!currVal ? 1 : 0);
}, 0);
if (count === 1) {
// Do something
}