在 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
变量设置为undefined
or我们在尝试访问数组上null
的属性时也不会出现错误。length
索引.js
let arr = undefined; if (arr?.length > 0) { // if this code block runs // 👉️ arr is not empty }
您可以将可选的链接运算符视为访问属性的安全方式。如果遇到
undefined
ornull
值,它只是短路并返回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的情况string
。javascript 中的字符串也有一个length
属性。 - 它在 Internet Explorer 版本 9-11 中受支持。
进一步阅读
- 检查数组是否包含另一个数组的所有元素 – JavaScript
- 检查数组是否包含 JavaScript 中的公共元素
- 检查数组是否包含 JavaScript 中的对象
- 在 JavaScript 中使 Array.indexOf() 不区分大小写
- 根据属性过滤对象数组 – JavaScript
- 在 JavaScript 中使用多个条件过滤数组
- 在 JavaScript 中获取数组中的前 N 个元素
- 在 JavaScript 中获取数组中的最后 N 个元素
- 如何检查 JavaScript 中是否存在数组索引
- 从 JavaScript 中的数组中删除未定义的值
- 从 Javascript 中的数组中删除空值
- 从 JavaScript 中的数组中删除空元素