2014-01-16 38 views
28

私はこのサイトの多くの例を検索しましたが、私のニーズに合わないようです。jquery grepを使ってjson配列をフィルタリングする

私はgrepを使っていくつかのjson結果をフィルタリングする必要があります。以下はjsonです。上記の例では

var data = { "items":[ 
    { 
     "id":   1, 
     "category":  "cat1" 
    }, 
    {   
     "id":   2, 
     "category":  "cat2" 
    }, 
    { 
     "id":   3, 
     "category":  "cat1" 
    } 
]} 

...

  • どのように私はCAT1のカテゴリを持つすべてのアイテムを返すでしょうか?
  • カテゴリcat1とid3のすべてのアイテムを返すにはどうすればよいですか?

私はこれが素晴らしい例ではないことを知っていますが、どんな助けも素晴らしいでしょう!ありがとう!私は、次の

data.items = $.grep(data.items, function(element, index){ 
    return element.id == 1; 
    console.log(data.items); 
}); 
+1

あなたは[documenation](http://api.jquery.com/jQuery.grep/)を読み取ることがありますか?何か試しましたか? –

+0

すべての項目をループし、新しい変数に保存してその変数を返しますか? –

+0

はい私はドキュメントを読んでいる、私は例のさまざまな組み合わせを試して、私は私のポストに例を追加しました。 – RiddleMeThis

答えて

40
var data = { 
    "items": [{ 
     "id": 1, 
     "category": "cat1" 
    }, { 
     "id": 2, 
     "category": "cat2" 
    }, { 
     "id": 3, 
     "category": "cat1" 
    }] 
}; 

var returnedData = $.grep(data.items, function (element, index) { 
    return element.id == 1; 
}); 


alert(returnedData[0].id + " " + returnedData[0].category); 

のバリエーションを試してみました

returnedDataは、オブジェクトの配列を返すので、あなたは、配列のインデックスでアクセスすることができます。

http://jsfiddle.net/wyfr8/913/

+0

あなたの答えに合わせてjsFiddleを更新しました。 http://jsfiddle.net/wyfr8/26/ – cjbarth

+0

私はそれを見ていないので、私は間違った場所にconsole.logを持っていた。 – RiddleMeThis

+0

カテゴリのフィルタリングで更新しました。 http://jsfiddle.net/wyfr8/584/ –

関連する問題