3

4 つのアイテムを保持する catalog という配列があります。

packageid、dataid、categoryid、および datapackage。

私がしたいことは、配列dataidsに、とpackageid等しいアイテムのすべてのデータ ID をプッシュすることです。との値が両方とも 0 の場合、catalog のすべてのデータ ID を配列にプッシュする必要があります。現時点では、packageid が 3 に等しいアイテムのデータ ID をプッシュするだけです。packageBtnFiltercategoryidcategoryBtnFilterpackageBtnFiltercategoryBtnFilterdataids

              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

私はあなたの状態が次のようなものでなければならないと思います

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

filter関数を使用して結果をフィルタリングし、マップして ID を取得します。

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 に答える