$("#submit").click(function(event) {
event.preventDefault()
var data = [{"date_range": $("#date").val()},
{"day_of_week": $("#day_of_week").find('option:selected').text()},
{"call_volume": $("#call_volume").find('option:selected').text()},
{"number_of_calls": $("#number_of_calls").val()}]
var info = data.filter(function(item) {return $.isEmptyObject(item)})
alert(info)
})
上面的代码出了什么问题?
基本上我试图做的是过滤数据数组中非空的对象。
我的意思是要通过filter
的内容的标准是正确的吗?
那为什么上面的代码没有工作呢?
尽管数据数组中的大多数对象都不为空,警告信息始终为空
答案 0 :(得分:1)
尝试否定$.isEmptyObject(object)
,
var info = data.filter(function(item) {return !$.isEmptyObject(item)});
因为,如果传递的对象不是空的,那么isEmptyObject
将返回false
,并且您将在callBack
的{{1}}中返回它。所以数组中的所有元素都被忽略了。
这就是filter
的工作方式,
Array.prototype.filter