Qraft(クラフト) 資格・学習クイズアプリ

JavaScript入門 練習問題 41:配列メソッド:filterによる抽出

次のコードの実行結果として正しいものはどれですか?

```javascript
const numbers = [1, 2, 3, 4, 5];
const result = numbers.filter(num => num % 2 === 0);
console.log(result);
```

  1. 条件を満たす偶数のみが抽出され、`[2, 4]`という配列が出力される。
  2. 条件を満たさない奇数が抽出され、`[1, 3, 5]`という配列が出力される。
  3. 各要素の判定結果が格納され、`[false, true, ...]`が出力される。
  4. 条件を満たす要素が合計され、`6`という単一の数値として出力される。
  5. 全ての要素が2倍に変換され、`[2, 4, 6, 8, 10]`という配列が出力される。
正解と解説を見る
正解:条件を満たす偶数のみが抽出され、`[2, 4]`という配列が出力される。

`filter`メソッドによって条件(偶数)を満たす要素だけが集められるため、`[2, 4]`が出力されます。

【正解の理由】
`filter`メソッドは、コールバック関数が`true`を返した要素のみを抽出して新しい配列を作成します。`num % 2 === 0`は「2で割った余りが0(=偶数)」という条件です。

【不正解の理由】
• 「条件を満たさない奇数が抽出され〜」は誤り。`filter`は条件を満たす(`true`になる)ものを抽出する
• 「各要素の判定結果が格納され〜」は、`map`メソッドで条件式を返した時の挙動である
• 「条件を満たす要素が合計され〜」は、`reduce`メソッドなどを使った集計処理の挙動である
• 「全ての要素が2倍に変換され〜」は、`map`メソッドで`num * 2`としたときの挙動である

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)