如何在 JavaScript 中检查数组是否为空

在 JavaScript 中检查数组是否为空

How to check if an Array is Empty in JavaScript

要检查数组是否为空,请访问其length属性,例如arr.length. 如果数组的长度等于0,则它为空。如果数组的长度大于0,则它不为空。

索引.js
const arr = ['hello']; if (arr.length > 0) { // if this code block runs // 👉️ arr is not empty console.log('arr is not empty') }

if只有当数组的长度大于 时,该块才会运行0如果数组的长度大于零,则它至少包含1一个元素。

或者,您可以使用
可选的链接运算符 ?。
如果将存储数组的变量设置为
undefined或,以避免出错null

索引.js
// Not supported in IE 6-11 const arr = ['hello']; // 👇️ Use ?. if (arr?.length > 0) { // if this code block runs // 👉️ arr is not empty console.log('arr is not empty') }

此代码片段与第一个代码片段不同,因为即使arr
变量设置为
undefinedor我们在尝试访问数组上null的属性时也不会出现错误。length

索引.js
let arr = undefined; if (arr?.length > 0) { // if this code block runs // 👉️ arr is not empty }
您可以将可选的链接运算符视为访问属性的安全方式。如果遇到undefinedornull 值,它只是短路并返回undefined,而不是抛出错误。

如果不确定变量是否存储数组,可以在访问其length属性之前检查其值的类型。

索引.js
let arr = ['hello']; if (Array.isArray(arr) && arr.length > 0) { // if this code block runs // 👉️ arr is not empty console.log('arr is not empty') }

我们在if声明中有 2 个条件。我们使用&&(and) 运算符来表示必须满足两个条件才能使if块运行。

我们首先检查arr变量是否存储一个数组,然后检查数组的长度是否大于0

这种方法类似于可选的链接方法,但我更喜欢它,因为:

  • 可选的链接方法不考虑arr设置为 a的情况stringjavascript 中的字符串也有一个length属性。
  • 它在 Internet Explorer 版本 9-11 中受支持。

进一步阅读

发表评论