件・・というように投稿日別にグループ化したいとか、該当の条件にマッチするものだけ表示したいといった処理が必要になるケースが出てきます。Underscore.jsというライブラリを導入することで、上記のような処理を比較的簡単に実現できるので、その方法について解説しますUnderscore.jsを利用するための事前準備Underscore.jsのサイトからMinifiedされたものををダウンロードします。プロジェクトフォルダのResouces直下に配置します。tiapp.xmlUnderscore.jsを使ってみるUnderscore.js使った簡易のサンプルをまずは紹介します。];上記データに対して、特定のタグにマッチする、具体的には、tagsのnameプロパティがJavaScriptのものだけを抽出したいというような処理を行いたい場合に、Underscore.jsのwhere()を利用することで手軽に実現できます。ソースコードapp.jsの中身を一旦削除して以下を記述します。}];alert(_.where(tags,{name:"JavaScript"}));上記実行すると、以下の様になるかと思います。ソースコードの解説キモになる所のソースコードを以下抜粋して実際の処理内容を解説します。Underscore.jsを利用するために、以下のようにしてファイルを読み込みます。_(アンダースコアー)にするのが通例のようなのでそれにならって以下のようにします。require("underscore-min");次に、以下のUnderscore.jsのwhere()の部分について解説します。alert(_.where(tags,{"name":"JavaScript"}));where()は2つ引数を取ります。_.where(<1>,{<2>})最初の引数は、検索対象となる配列を渡します。[{},{}...]というものが対象になるため、最初の引数をtagsとしてます。次の引数ですが、検索条件となるものを、key-valueの形式で渡します。今回はnameプロパティがJavaScriptのものだけを抽出したいため、{name:"JavaScript"}という形になります。QiitaのWebAPIから得られるデータで特定のタグにマッチするものだけ抽出する上記解説時に利用したサンプルのJSON形式のデータのようなシンプルな構造のケースは少なく、実際にQiitaのWebAPIから得られる形式は、以下のようにオブジェクトが入れ子になってます。}];こういうデータ構造になってるものに対して、先ほどと同様にtagsのnameプロパティがJavaScriptのものだけを抽出したいというような処理を行う場合には一工夫した上でUnderscore.jsのwhere()を利用する必要がありますので、その方法について以下解説します。オブジェクトが入れ子になったデータに対する処理の概要まずはソースコードを以下に示します。result;};実行すると以下の様な画面が表示されます。今回のようなオブジェクトが入れ子構造になってるものに対してalert(_.where(result,{name:"JavaScript"}));としても、検索対象のresultの直下にはuuidとtagsというプロパティしか存在しないため意図したような検索結果が得られません。}]今回のように、tagsプロパティ内の配列を検索対象にする場合、まずはresult配列に対してループ処理をして、result内部のオブジェクト1つ1つにアクセスします。items[i].tags;}そして、アクセスしたオブジェクトのtagsに対してwhere()を適用してtagsのnameプロパティが該当のものにマッチした場合には、valueに値を格納します。});}そして、valueの値をチェックして該当のタグにマッチするオブジェクトの場合には、この関数内で利用する配列resultに格納しておきます。}]となってるのでこちらは条件にマッチします。}]なのでこちらはマッチしないため、alert()で表示されません。件・・というように投稿日別にグループ化するサンプルアプリケーションについて紹介します。