厳密モード ( 'use strict';
) を使用する場合は、変数を宣言する必要があります。定義されていない(含まれてcheckboxFilter
いる)多くの変数を使用しています。i
script.js:22-23 を次のように変更することで、最初の問題を回避できます。
var i,j,k,filter_cat,filter_value,filter_name,matchingItems = [];
その後、さらに3つの問題があります...
- 37 行目、このコードは
filter_cat
:という名前のプロパティitems[i].filter_cat
を探しています。これは、値が のプロパティ名を検索する必要があったfilter_cat
ため、これが必要です: items[i].[filter_cat]
.
- あなたのjsonデータには小文字のフィールド名があり、コードは大文字で検索しています(タイプとタイプ)
- あなたのjsonデータには小文字の値があり、コードは大文字で検索しています(果物と果物)
これは、正しい軌道に乗るための部分的な編集です。json を変更するか、小文字を比較する必要があります (json を部分的に変更しました): http://plnkr.co/edit/d7p4QthXJg4ao34ATWla?p=preview