我有一个bool阵列。
var arr = [true, false, true,false, true]
我的要求:
如果数组包含bool值true
,我想显示一个警告'数组包含一个真值'。警报不应该是多重的。
有人可以建议如何在javascript中实现它吗?
答案 0 :(得分:4)
includes会做
var arr = [true, false, true,false, true]
if(arr.includes(true)){
alert("true found");
}

答案 1 :(得分:2)
您也可以将Array.prototype.some 用于此目的。
var arr = [true, false, true,false, true]
if(arr.some((elem)=> elem === true))
{
console.log('contains true')
}
您也可以使用Array.prototype.findIndex方法。如果没有找到它将返回-1。
if(arr.findIndex(elem=>elem === true)!=-1){
console.log('contains true')
}
Object.is ( ) 在内部使用===
。所以你也可以使用它
if(arr.some(elem=>Object.is(elem,true))){
console.log('contains true')
}
array.prototype.indexOf 也在内部使用===
。
if(arr.indexOf(true) != -1){
console.log('contains true')
}
有很多方法可供选择。选择一个适合您需要的方式。
答案 2 :(得分:0)
您可以使用indexOf
功能。
如果它不包含true
,则返回数字-1。
var arr = [true, false, true,false, true];
if(arr.indexOf(true) >= 0)
{
alert('got it');
}
答案 3 :(得分:0)
你可以试试这个:
for(var i=0; i<arr.length; i++){
if(arr[i]){
alert("Array contains a true value");
break;
}
}
OR
var b = false;
for(var i=0; i<arr.length; i++)
b = b || arr[i];
if(b)
alert("Array contains a true value");
答案 4 :(得分:0)
你可以简单地使用Array.prototype.some,以下是代码。
let arr = [true, false, true,false, true]
if(arr.some(e=>e))
alert("true is included in the array");