我从第一眼看就知道它听起来像重复的问题,但我认为不是……
我收到一个JSON数组:
var test1 = [] ;
要么
var test2 = [{},{},{}] ; //This is empty
我发现test1是否为空是没有问题的.
jQuery.isEmptyObject(test1)
我的问题是测试2 …
请注意,在某些情况下,test2可能会返回以下内容:
var test2 = [{"a":1},{}] ; //All these are not empty var test2 = [{},{"a":1},{"a":1}] ; //All these are not empty
上面的场景不应该被视为空.我已经尝试使用.length但它没有帮助,因为长度总是3 …任何想法?
干杯.
解决方法
function isArrayEmpty(array) { return array.filter(function(el) { return !jQuery.isEmptyObject(el); }).length === 0; }
通过所有测试.
一个纯JavaScript解决方案是用Object.keys(el)替换!jQuery.isEmptyObject(el).length!== 0
function isArrayEmpty(array) { return array.every(function(el) { return jQuery.isEmptyObject(el); }); }