JavaScript filter関数を使用して条件に一致する要素で配列を生成する
こんにちは。ふっくんです。
前回は、 javascript
の map
関数をご紹介しました。
JavaScript map関数を使用して必要な要素のみで配列を生成する
今回は、 javascript
の filter
関数をご紹介します。
map
関数と filter
関数を使えば、javascriptで配列を扱う時にかなり楽になると思います。
filter関数の使い方
filter関数で何ができるかというと 配列の全ての要素の中から条件に一致する要素で、新たな配列を生成することができます!
例えば、以下のような連想配列があるとしましょう。
const array = [
{'id': 1, 'category': 'animal', 'kind': 'dog'},
{'id': 2, 'category': 'fruit', 'kind': 'apple'},
{'id': 3, 'category': 'fruit', 'kind': 'orange'},
{'id': 4, 'category': 'animal', 'kind': 'dog'},
{'id': 5, 'category': 'animal', 'kind': 'cat'},
{'id': 6, 'category': 'fruit', 'kind': 'grape'},
]
この配列の中から category
が fruit
だけの要素で配列を生成したい時に filter
関数をします。
const array = [
{'id': 1, 'category': 'animal', 'kind': 'dog'},
{'id': 2, 'category': 'fruit', 'kind': 'apple'},
{'id': 3, 'category': 'fruit', 'kind': 'orange'},
{'id': 4, 'category': 'animal', 'kind': 'dog'},
{'id': 5, 'category': 'animal', 'kind': 'cat'},
{'id': 6, 'category': 'fruit', 'kind': 'grape'},
]
const fruits = array.filter(x => x.category === 'fruit')
console.log(fruits)
出力結果
[
{id: 2, category: "fruit", kind: "apple"},
{id: 3, category: "fruit", kind: "orange"},
{id: 6, category: "fruit", kind: "grape"}
]
filter
関数も map
関数と同様、1行で書くことができます。
配列の全ての要素の中から必要な要素のみを取り出し、新たな配列を生成したいときは map 関数。
配列の全ての要素の中から条件に一致する要素で、新たな配列を生成したいときは filter 関数。
map
関数と filter
関数、ぜひ使いこなしてみてください!
過去の記事でC#での書き方も記載しておりますので、こちらもぜひご確認ください! JavaScript 屋さんのための C# LINQ 入門 (1) filter / Where
補足情報
この記事のJavaScriptはES6で書いています。