javascript - 检查 JSON 数组是否为空

标签 javascript jquery

我从第一眼就知道这听起来像是重复的问题,但我不认为这是...

我正在收到一个 JSON 数组:

var test1 = [] ;

var test2 = [{},{},{}] ;  //This is empty

我很容易确定 test1 是否为空。

jQuery.isEmptyObject(test1)

我的问题是 test2... 请注意,在某些情况下,test2 可能会返回如下内容:

var test2 = [{"a":1},{},{}] ;  //All these are not empty
var test2 = [{},{"a":1},{}] ;  //All these are not empty
var test2 = [{},{},{"a":1}] ;  //All these are not empty

以上场景不应算作空。我尝试使用 .length 但它无济于事,因为长度始终为 3...有什么想法吗?

干杯。

最佳答案

function isArrayEmpty(array) {
    return array.filter(function(el) {
        return !jQuery.isEmptyObject(el);
    }).length === 0;
}

jsFiddle Demo

通过所有测试。

纯 JavaScript 解决方案是将 !jQuery.isEmptyObject(el) 替换为 Object.keys(el).length !== 0

编辑:使用 Array.prototype.every

function isArrayEmpty(array) {
    return array.every(function(el) {
        return jQuery.isEmptyObject(el);
    });
}

关于javascript - 检查 JSON 数组是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18396073/

相关文章:

jquery - 用 Javascript/jQuery 中的正则表达式替换模式的所有实例

javascript - 在 Rails 中自动提交 HTML 选择下拉列表

javascript - ajax提交表单为什么不能回显$_POST

javascript - 使用路线javascript中的id从数据库中删除项目

javascript - 使用 REST 发送 ajax 请求可以,但不能使用 jQuery

javascript - 如何制作这个 Gauge 微分 Angular ?

javascript - jQuery 表过滤器排序不正确

javascript - 从 JSON 数据构建表格布局(代码改进)

javascript - 为什么我应该从 Axios 调用中返回 "undefined",而它应该返回对象?

jquery - 每次使用 jquery 单击元素时如何更改元素的 id