<分区>
我正在使用 like 检查数组是否不为空
if(array != null){
//code
}
我也是这样发现的
if(Array.isArray(array)){
//code
}
和
if(array.length){
//code
}
以上三个用哪个比较好?
标签 javascript jquery
<分区>
我正在使用 like 检查数组是否不为空
if(array != null){
//code
}
我也是这样发现的
if(Array.isArray(array)){
//code
}
和
if(array.length){
//code
}
以上三个用哪个比较好?
最佳答案
我建议使用 Array.isArray
和 length
array 的属性(property)
if (Array.isArray(array) && array.length) {
// code
}
因为它会检查 array
是否为数组以及长度是否为真值。
比较你的尝试:
真实性检查
if (array != null) { // which is basically the same as if (array) {
//code
}
这对于所有真值都是 true
,例如 1
、'a'
、{}
。这个结果是不想要的。
数组检查
if (Array.isArray(array)) {
// code
}
这只检查 array
是否是一个数组,而不是它的长度。空数组返回 true
,这是不需要的。
长度检查
if (array.length) {
// code
}
这仅适用于可能具有长度属性且具有真值的对象。
虽然这接近于想要的结果,但它可能是错误的,例如对于像这样的对象
{ length: 'foo' }
或使用 array-like objects .
关于javascript - 在 jQuery 中检查数组是否为空的最佳程序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44277505/
相关文章:
javascript - 在 React 中显示来自 API 的图像
javascript - handlebars.js 不在 IE9 中渲染模板
jquery - 如何从 ul li 列表中的链接获取 href 值
jquery - 当我调整浏览器大小时,如何让 jquery 幻灯片调整到 100% 宽度?
javascript - 使用 jQuery mouseover 定位单个类的子实例
javascript - 转移 { ..this.props } 但排除某些
javascript - 在 JavaScript 中,为什么 "reverse while"循环比 "for"快一个数量级?