我有一个名为catalog的数组,它包含4个项目:
packageid,dataid,categoryid和datapackage。
我想要做的是将packageid
等于packageBtnFilter
且其categoryid
等于的项目的所有数据标识推入数组 dataids categoryBtnFilter
。如果packageBtnFilter
和categoryBtnFilter
的值均为0,那么它应该将目录的所有数据集推送到dataids
数组中。目前它只是推送packageid等于3的项的数据。
var packageBtnFilter = $('#packages').val();
var categoryBtnFilter = $('#categories').val();
var dataids = new Array();
$(catalogue).each(function () {
if (this.packageid == 3) dataids.push(this.dataid);
});
谢谢! 完整的代码在这里 http://jsfiddle.net/hunter/Tcwgf/1/
答案 0 :(得分:1)
var dataids = (
categoryBtnFilter==0 && packageBtnFilter==0
? catalogue
: catalogue.filter(function(i) {
return i.categoryid=categoryBtnFilter && i.packageid==packageBtnFilter
})
).map(function(i){return i.dataid});
答案 1 :(得分:1)
我认为你的情况应该是
if ((packageBtnFilter == 0 && categoryBtnFilter == 0) || this.packageid == packageBtnFilter || this.packageid == categoryBtnFilter) dataids.push(this.dataid);