JavaScriptにおいて、OpenLayersやjsonデータなど、配列データの処理しているのですが、古典的なループを使った記述をしておりました。
一方、C#では、数年前より、LINQを使用し、その便利さに依存しまくっており、JavaScriptでも、LINQが利用できないかネットで探したところ、JavaScriptでLINQ利用できるライブラリ「linq.js」があるので、試してみました。
そのときの、メモです。
1.linq.jsのダウンロード
以下のサイトより、zipをダウンロードし、解凍して使います。
2.linq.jsの読み込み
一般的なJavaScriptライブラリと同じく、.jsファイルを読み込みます。
3.linq.jsの使用例
以下、使用例です。jsonデータだけでなく、OpenLayersのLayerといった、独自クラスの配列も利用できます。めっちゃ便利です。C#とほとんど違和感なくLINQが利用できます。
条件のレイヤ名のレイヤを抽出
1 2 3 |
var result = Enumerable.from(map.getLayers().getArray()) .where(x => x.get('name') == layerName) .firstOrDefault(); |
レイヤ一覧から、特定の属性(レイヤ名)一覧を抽出
1 2 3 |
var layerNames = Enumerable.from(map.getLayers().getArray()) .select(x => x.get('name')) .toArray(); |