JavaScript入門 練習問題 65:配列メソッド:要素の反転と破壊的操作
次のコードを実行したときのコンソールへの出力として正しいものはどれですか?
```javascript
const letters = ['a', 'b', 'c'];
const result = letters.reverse();
console.log(letters[0], result[0]);
```
- a と c
- c と c
- c と a
- a と a
- undefined と c
正解と解説を見る
正解:c と c
`reverse`メソッドは元の配列自体を変更(破壊的操作)して反転させるため、元の配列も戻り値の配列も先頭要素は「c」になります。
【正解の理由】
配列の `reverse` メソッドは、配列の要素の順番を逆順にします。重要な特徴として、新しい配列を作るのではなく、元の配列そのものを書き換えます(破壊的メソッド)。戻り値もその書き換えられた元の配列への参照となるため、`letters` と `result` は実質的に同じ配列を指しており、どちらの先頭要素(インデックス0)も `'c'` になります。
【不正解の理由】
• 『a と c』という説明は誤り。元の配列は変更されないと勘違いしている場合の出力
• 『c と a』という説明は誤り。両方の変数が指している配列の状態と一致しない
• 『a と a』という説明は誤り。反転処理が行われているため先頭は `'a'` ではなくなる
• 『undefined と c』という説明は誤り。元の配列が消失するわけではないため値は取得できる