カテゴリ: JavaScript 更新日: 2025/08/08

JavaScriptのfilterメソッドで条件に合う要素を抽出する方法

JavaScriptのfilterメソッドで条件に合う要素を抽出する方法
JavaScriptのfilterメソッドで条件に合う要素を抽出する方法

先生と生徒の会話形式で理解しよう

生徒

「JavaScriptで配列の中から条件に合ったものだけを取り出す方法ってありますか?」

先生

「ありますよ!それがfilterメソッドです。配列の中から『これがほしい!』という条件に合う要素だけを抽出するための便利な方法です。」

生徒

「具体的にはどうやって使うんですか?」

先生

「順を追って説明しますね!」

1. filterメソッドとは? 条件に合う要素だけを選ぶ仕組み

1. filterメソッドとは? 条件に合う要素だけを選ぶ仕組み
1. filterメソッドとは? 条件に合う要素だけを選ぶ仕組み

filterメソッドは、配列の中の要素を一つずつ調べて、「条件に合っているかどうか」を判断します。そして条件に合った要素だけを集めて、新しい配列として返してくれます。

例えば、フルーツの配列から「バナナだけを集める」といった使い方ができます。


let fruits = ["りんご", "バナナ", "みかん", "バナナ"];
let bananas = fruits.filter(function(item) {
  return item === "バナナ";
});
console.log(bananas);  // ["バナナ", "バナナ"]

["バナナ", "バナナ"]

このようにfilterは、新しい配列を作るので元の配列は変わりません。

2. filterの仕組み:関数を使って条件をチェック

2. filterの仕組み:関数を使って条件をチェック
2. filterの仕組み:関数を使って条件をチェック

filterに渡す関数(「コールバック関数」と呼びます)は、配列の要素を一つずつ受け取って「この要素は条件を満たしているか?」をtruefalseで返します。

trueの場合は新しい配列に入れて、falseなら入れません。

例えば「5より大きい数字だけを集める」場合はこう書きます。


let numbers = [1, 3, 7, 10, 5];
let bigNumbers = numbers.filter(function(num) {
  return num > 5;
});
console.log(bigNumbers);  // [7, 10]

[7, 10]

この場合、num > 5が条件です。

3. 短く書く方法:アロー関数でさらにスッキリ

3. 短く書く方法:アロー関数でさらにスッキリ
3. 短く書く方法:アロー関数でさらにスッキリ

JavaScriptでは、条件を書く関数をもっと短く書ける「アロー関数」という書き方があります。


let numbers = [1, 3, 7, 10, 5];
let bigNumbers = numbers.filter(num => num > 5);
console.log(bigNumbers);  // [7, 10]

コードが短くて見やすくなるので、慣れたらぜひ使いましょう。

4. filterでよくある使い方の例

4. filterでよくある使い方の例
4. filterでよくある使い方の例

以下は、filterを使った他の例です。

  • 文字列の長さが5文字以上のものだけ集める
  • 配列の中の偶数だけ抽出する
  • オブジェクトの配列から特定の条件を満たすものだけ選ぶ

// 文字列の長さが5文字以上
let words = ["りんご", "バナナ", "みかん", "メロン"];
let longWords = words.filter(word => word.length >= 5);
console.log(longWords);  // ["バナナ", "メロン"]

// 偶数だけ抽出
let numbers = [1, 2, 3, 4, 5, 6];
let evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers);  // [2, 4, 6]

// オブジェクト配列で年齢が20以上の人だけ
let people = [
  {name: "太郎", age: 18},
  {name: "花子", age: 22},
  {name: "次郎", age: 20}
];
let adults = people.filter(person => person.age >= 20);
console.log(adults);  
// [{name: "花子", age: 22}, {name: "次郎", age: 20}]

5. filterメソッドのポイントと注意

5. filterメソッドのポイントと注意
5. filterメソッドのポイントと注意

filterは元の配列を変更しません。新しい配列を返すので、元のデータは安心です。

また、条件を考える関数を書くのが少し難しく感じるかもしれませんが、慣れるととても便利でパワフルな方法です。

使うときは「どんな条件で選びたいか?」をまず考え、その条件をfilterに渡す関数として書くことが大切です。

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScript × ES6の連携まとめ!安全でモダンなJavaScript開発の鍵
New2
TypeScript
TypeScriptの型システムとは?静的型付けのメリットと基本
New3
JavaScript
JavaScriptの正規表現で繰り返し指定(* + ? {n,m})を学ぼう
New4
TypeScript
TypeScriptとESNextの連携を完全ガイド!最新機能を使いこなす設定と対応法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptの日時操作Tips!実務で役立つテクニック集
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptでESLintとPrettierを導入!コード整形ルールを自動で統一する方法
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptのif文の使い方を完全ガイド!初心者でもわかる条件分岐
No.6
Java&Spring記事人気No6
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptの正規表現で文字列を置換する方法(replaceメソッド)
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptで非同期イテレーター(for await of)を活用する