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

JavaScript入門 練習問題 19:構文:スプレッド構文による配列の展開

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

```javascript
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5];
console.log(arr2);
```

  1. [1, 2, 3, 4, 5]
  2. [1, 2, 3, [4, 5]]
  3. [4, 5, 1, 2, 3]
  4. [[1, 2, 3], 4, 5]
  5. コンソールにエラーメッセージが出力される
正解と解説を見る
正解:[1, 2, 3, 4, 5]

スプレッド構文(...)は配列の各要素を展開して個別の値として並べるため、arr1の要素1, 2, 3が展開され、続けて4, 5が追加された1次元の配列になります。

【正解の理由】
[...arr1, 4, 5]は「arr1を展開した後に4, 5を追加する」という意味になるため、結果は[1, 2, 3, 4, 5]という1つのフラットな配列になります。

【不正解の理由】
• 「[1, 2, 3, [4, 5]]」:スプレッド構文を使わずに4と5をそのまま配列として追加した場合の結果であり、スプレッド構文の展開機能を反映していない
• 「[4, 5, 1, 2, 3]」:要素の順序が実際のコードと逆になっており、記述順(arr1が先)を反映していない
• 「[[1, 2, 3], 4, 5]」:arr1がそのまま配列として1つの要素になっており、スプレッド構文による展開が行われていない
• 「コンソールにエラーメッセージが出力される」:スプレッド構文は配列リテラル内で正しく使用されており、構文エラーは発生しない

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