在javascript中获取一个数组的布尔值的教程

136 阅读2分钟

在这篇博文中,你将学会在javascript或typescript中检查一个数组的布尔值。

在javascript中查找数组包含的布尔值

数组包含一个类似类型值的集合。

例如,我们有一个包含多个复选框的用户表单--在Angular应用程序中可以有全选/取消全选。

FormGroup中的复选框是用FormArray定义的,它持有true - 如果复选框被选中,false - 复选框没有被选中。

要实现表单验证,比如如果用户没有选中任何复选框,就会显示错误信息--请至少选中一个复选框。

那么我们如何在Angular中检查存在于复选框数组中的布尔值true。

这篇文章讲述了在Javascript/Typescript/Angular中检查数组中存在的真/假值的多种方法。

  • 带有if块的For循环
  • 数组some()方法
  • 数组indexOf方法
  • Es7数组 包括

所有的例子都可以在Javascript,typescript, 和Angular

带有if块的For循环示例

一个基本的开发者将使用下面的逻辑来检查一个数组中的真值

  • 迭代用于正常循环的数组
  • 使用if循环检查每个元素的真值
  • 如果找到了,返回真值并从循环中断开
  • 如果没有找到,返回一个假值
function checkTrueExistsArray(array){
for(var k=0; k<array.length; k++){
    if(array[k]){
        return true
        break;
    }
}
return false;
}
var arrayVariable= [false,false,true,false,true]
var arrayVariable1= [false,false,false,false,false]

console.log(checkTrueExistsArray(arrayVariable)) //true
console.log(checkTrueExistsArray(arrayVariable1)) //false

数组Some()方法

数组中的Some()是javascript语言中一个内置的方法。

  • 它遍历每个元素并为每个值调用回调。
  • 如果回调返回一个真值,停止迭代并返回真值。
  • 如果回调返回一个假值,则进入下一个迭代,直到返回真值或数组迭代结束。
function checkTrueUsingArraySome(array){
  if(array.some((item)=> item === true)){
    return true;
    }
    return false;
}
var arrayVariable= [false,false,true,false,true]
var arrayVariable1= [false,false,false,false,false]
console.log(checkTrueUsingArraySome(arrayVariable)) //true
console.log(checkTrueUsingArraySome(arrayVariable1)) //false

数组indexOf方法示例

indexOf method in Array 接受输入参数,如果在一个数组中找到输入,则返回索引位置,否则返回-1。

function checkTrueUsingArrayIndexOf(array){
  if(array.indexOf(true) != -1){
    return true;
    }
    return false;
}
var arrayVariable= [false,false,true,false,true]
var arrayVariable1= [false,false,false,false,false]

console.log(checkTrueUsingArrayIndexOf(arrayVariable)) //true
console.log(checkTrueUsingArrayIndexOf(arrayVariable1)) //false

Es7包括检查真值

ES7也就是最新的javascript语言引入了includes 方法。

如果在数组中找到的值,它返回真,否则返回假,你可以查看更多关于ES7的内容

function checkTrueUsingArrayInclude(array){
  if(array.includes(true)){
    return true;
    }
    return false;
}
var arrayVariable= [false,false,true,false,true]
var arrayVariable1= [false,false,false,false,false]

console.log(checkTrueUsingArrayInclude(arrayVariable)) //true
console.log(checkTrueUsingArrayInclude(arrayVariable1)) //false