0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JavaScriptのfilter()メソッドの使い方

Last updated at Posted at 2025-11-09

filter() は JavaScript の配列メソッドの中でもとてもよく使われるもので、
「配列から特定の条件を満たす要素だけを取り出す」ために使います。

filter()の使い方

🧩 基本構文

const 新しい配列 = 元の配列.filter((要素, インデックス, 配列全体) => {
  return 条件式; // true の要素だけ残る
});

要素:配列の各値

インデックス:現在のインデックス番号(0, 1, 2...)

配列全体:元の配列(mapと同じく3番目の引数で参照可能)

return に true を返した要素だけ が残ります。

✅ 通常の書き方

const numbers = [1, 2, 3, 4, 5];

const evenNumbers = numbers.filter((num) => {
  return num % 2 === 0;
});

console.log(evenNumbers); // [2, 4]

✅ 例2:省略記法(暗黙のreturn)

const numbers = [1, 2, 3, 4, 5];

const evenNumbers = numbers.filter(num => num % 2 === 0);

console.log(evenNumbers); // [2, 4]

✔️ このように、

波かっこ {} を外すと自動で return される

1行の式のみ に使える
というルールです。

🎯 例2:オブジェクト配列のフィルター

const users = [
  { name: "Taro", age: 15 },
  { name: "Hanako", age: 22 },
  { name: "Ken", age: 30 },
];

const adults = users.filter(user => user.age >= 20);

console.log(adults);
// [{ name: "Hanako", age: 22 }, { name: "Ken", age: 30 }]

👉 条件に合うオブジェクトだけを抽出できます。

🔍 例3:第3引数(配列全体)を使う

「平均より大きい要素だけを抽出したい」ような場合👇

const numbers = [10, 20, 30, 40];

const result = numbers.filter((num, index, array) => {
  const average = array.reduce((sum, n) => sum + n, 0) / array.length;
  return num > average; // 平均より大きい要素だけ残す
});

console.log(result); // [30, 40]

ここでも、array は numbers(元配列)そのものです。

✅ まとめ

メソッド名: filter()
返り値: 条件を満たす要素だけを含む 新しい配列
元の配列: 変更されない(非破壊的)
よく使う用途: 検索・絞り込み・除外処理

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?