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

JavaScript入門 練習問題 61:配列メソッド:条件に一致する要素の有無の判定

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

```javascript
const numbers = [1, 3, 5, 8];
const hasEven = numbers.some(num => num % 2 === 0);
console.log(hasEven);
```

  1. 条件を満たす要素が1つ存在するため、true が出力される。
  2. 条件を満たす要素の最初の値である、8 が出力される。
  3. 全ての要素が条件を満たさないため、false が出力される。
  4. 条件を満たす要素を含む新しい配列、[8] が出力される。
  5. 条件を満たす要素のインデックスである、3 が出力される。
正解と解説を見る
正解:条件を満たす要素が1つ存在するため、true が出力される。

`some`メソッドは配列の要素のうち「少なくとも1つ」が条件を満たすかどうかを判定するため、8が偶数であることから「true」が出力されます。

【正解の理由】
`some()` メソッドは、コールバック関数(=引数として渡される関数)で指定した条件に一致する要素が配列内に1つでも存在すれば `true` を、1つも存在しなければ `false` を返します。配列の中に偶数(`num % 2 === 0`)である `8` が含まれているため、結果は `true` となります。

【不正解の理由】
• 「条件を満たす要素の最初の値である、8」は誤り。値そのものを取得するのは `find()` メソッドです。
• 「全ての要素が条件を満たさないため、false」は誤り。配列には条件を満たす `8` が含まれています。
• 「条件を満たす要素を含む新しい配列、[8]」は誤り。条件に合う要素を配列で返すのは `filter()` メソッドです。
• 「条件を満たす要素のインデックスである、3」は誤り。インデックスを取得するのは `findIndex()` メソッドです。

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