3

我有一个名为目录的数组,其中包含 4 个项目:

packageid、dataid、categoryid 和 datapackage。

我想要做的是将等于和等于的项目的所有 dataids推入数组dataids中。如果 和 的值都为 0,那么它应该将目录的所有数据 ID 推送到数组中。目前它只是推送 packageid 等于 3 的项目的 dataids。packageidpackageBtnFiltercategoryidcategoryBtnFilterpackageBtnFiltercategoryBtnFilterdataids

              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/

4

2 回答 2

1

使用filter函数过滤结果并映射到 ids:

var dataids = (
   categoryBtnFilter==0 && packageBtnFilter==0
   ? catalogue
   : catalogue.filter(function(i) {
       return i.categoryid=categoryBtnFilter && i.packageid==packageBtnFilter
   })
).map(function(i){return i.dataid});
于 2013-01-16T12:14:38.860 回答
1

我想你的情况应该是这样的

if ((packageBtnFilter == 0 && categoryBtnFilter == 0) || this.packageid == packageBtnFilter || this.packageid == categoryBtnFilter) dataids.push(this.dataid);
于 2013-01-16T12:15:50.197 回答