javascript - 在 jQuery 中检查数组是否为空的最佳程序是什么?

标签 javascript jquery

<分区>

我正在使用 like 检查数组是否不为空

if(array != null){
  //code 
}

我也是这样发现的

if(Array.isArray(array)){
//code
}

if(array.length){
//code
}

以上三个用哪个比较好?

最佳答案

我建议使用 Array.isArraylength array 的属性(property)

if (Array.isArray(array) && array.length) {
    // code
}

因为它会检查 array 是否为数组以及长度是否为真值。


比较你的尝试:

  1. 真实性检查

    if (array != null) { // which is basically the same as if (array) {
        //code 
    }
    

    这对于所有真值都是 true,例如 1'a'{}。这个结果是不想要的。

  2. 数组检查

    if (Array.isArray(array)) {
        // code
    }
    

    这只检查 array 是否是一个数组,而不是它的长度。空数组返回 true,这是不需要的。

  3. 长度检查

    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 } 但排除某些

php - 上传大文件时浏览器挂起

javascript - 在 JavaScript 中,为什么 "reverse while"循环比 "for"快一个数量级?

javascript - Facebook 登录窗口在未登录应用程序的情况下出现和消失

javascript - .Each function JavaScript 在 XML 中迭代两次