JavaScript 检查数组是否为空的函数
JavaScript提供了内置函数来检查数组是否为空。以下是JavaScript编程提供的用于检查空数组的方法:
- length
- isArray(array)
Array.isArray()函数 检查数组类型(传递的参数是否为数组),array.length函数用于获取数组长度。因此,我们可以轻松识别空数组。您可以分别使用它们。
现在,我们将详细学习这些方法并附带示例:
.length属性
length属性通过其返回数组的长度,您可以确定数组是否为空。此属性直接与数组的名称连接使用点(.)运算符, 例如,arr1.length 。
语法
array.length
如果该属性返回的长度为0,则表示数组为空。否则,如果返回的值为非零,则数组不为空。
如何使用?
它直接与由点(.)运算符连接的用户定义数组一起使用。请参考以下示例以更好地理解该属性。
<script>
var arr1 = [15, 78, 24, 89, 23];
var arr2 = [];
//check second array (arr2) length
if(arr1.length == 0)
document.write("arr1 is empty <br>");
else
document.write("arr1 is not empty <br>");
//check second array (arr2) length
if(arr2.length == 0)
document.write("arr2 is empty <br>");
else
document.write("arr2 is not empty <br>");
</script>
输出
在下面的输出中,你可以看到第一个数组被命名为 arr1不为空 ,因为它包含五个元素,而第二个数组被命名为 arr2为空 。
arr1 is not empty
arr2 is empty
Array.isArray()
在 JavaScript 中,数组实际上并不是数组,它们是对象。因此,如果用 typeof 属性检查数组的类型,它会返回一个值为 object 的结果。但现在我们有 Array.isArray() 函数来检查数组的类型,可以与 .length 属性一起用来检查空数组。
这个方法帮助确定你传入此函数的值是否为数组。我们可以说它识别数组类型或普通数据类型变量。它也可以确定未定义或空数组。
语法
Array.isArray(arr1)
它返回一个布尔值,只能是 true 或 false 。
返回值
True – 如果返回 true ,则传入的值是一个数组。
False – 如果返回false,传入此函数的值不是数组类型。
如何使用?
此函数与数组的名称一起使用,例如 Array.isArray(arr1) 。在JavaScript示例中,我们将结合使用此函数的length属性来检查空数组。查看此函数在JavaScript示例中的实现以更好地理解。
示例
<script>
var arr1 = new Array('Happy', 'New', 'Year');
//check the first variable (arr1) type and empty
if(Array.isArray(arr1)) {
document.write("arr1 is an array");
if (arr1.length == 0)
document.write(" and it is empty <br>");
else
document.write(" but it is not empty. <br>");
}
else
document.write("arr1 is not an array. <br>");
</script>
输出
在下面的输出中,您可以看到我们使用Array.isArray()函数检查的值是一个数组,但该数组不为空。
arr1 is an array but it is not empty.
示例2
在此示例中,我们将检查一个数组是否为空,以及另一个变量是否为非数组值。请参考以下代码:
<script>
var arr1 = [];
var arr2 = "notAnArray";
//check the first variable (arr1) type and empty
if(Array.isArray(arr1) == true){
document.write("arr1 is an array");
if (arr1.length <= 0)
document.write(" and it is empty <br>");
else
document.write(" and it is not empty. <br>");
}
else
document.write("arr1 is not an array. <br>");
//check the second variable (arr2) type and empty
if(Array.isArray(arr2) == true){
document.write("arr2 is an array");
if (arr2.length <= 0)
document.write(" and it is empty as well. <br>");
else
document.write(" and it is not empty. <br>");
}
else
document.write("arr2 is not an array. <br>");
</script>
输出
在以下输出中,您可以看到第一个数组名为 arr1是一个空数组 ,因为它没有元素,而第二个变量名为 arr2不是一个数组 。
arr1 is an array and it is empty as well.
arr2 is not an array.
isArray()和.length属性
length属性和Array.isArray()函数可以在if条件语句中一起使用,并通过AND(&&)操作符连接。
语法
以下是isArray()和length属性如何一起使用的语法:
Array.isArray(arr1) && arr1.length
使用上面的语法与if-else条件来检查数组类型和空数组。
如何使用?
查看下面的示例,了解如何使用这两个函数来检查JavaScript中的空数组。
检查数组是否为空
您可以在这两个条件之间使用OR(||)运算符来检查数组是否为空。
if(Array.isArray(arr1) || arr1.length) {
//
}
检查数组是否不为空
您可以使用相反的方法来检查数组是否不为空。为此,使用AND(&&)运算符来设定条件来检查数组是否不为空。
if(Array.isArray(arr1) && arr1.length) {
//
}
示例1
现在,我们将在一个示例中使用此函数,以便更好地理解它。在这个示例中,我们检查了两个变量,看它们是否是数组类型。
<script>
var arr1 = [];
var arr2 = [15, 78, 24, 89, 23];
//check the first variable (arr1) type and empty
if(Array.isArray(arr1) == true && arr1.length <= 0)
document.write("arr1 is an array and it is empty <br><br>");
else
document.write("Either arr1 is not an array or it is not empty <br><br>");
//check the second variable (arr2) type and empty
if(Array.isArray(arr2) == true && arr2.length <= 0)
document.write("arr2 is an array and it is empty <br>");
else
document.write("Either arr2 is not an array or it is not empty </br>");
</script>
输出
从下面的输出结果可以看出,arr1是一个空数组,而err2要么不是一个数组,要么不为空。
arr1 is an array and it is empty.
Either arr2 is not an array or it is not empty.
注意:获取精确结果的方式比较复杂且不够清晰。
Array.isArray() 与 .length
.length属性可以和其他数据类型(例如字符串)一起使用来获取长度。而Array.isArray()等方法只能用于数组数据类型,它还可以帮助确定你的数组是否为数组类型。
Array.isArray()方法较为冗长,因为我们首先需要确定变量是否为数组类型,然后再使用.length属性来检查空数组。
因此,我们建议您对于小计算直接使用.length属性来检查数组变量的长度并确定其是否为空。