3.6 分割代入
分割代入 (destructuring assignment) を使うと、オブジェクトや配列の中身を簡潔に抽出して変数に代入できます。
3.6.1 オブジェクトの分割代入
Section titled “3.6.1 オブジェクトの分割代入”オブジェクトの特定のプロパティを、同じ名前の変数として一度に定義できます。
- 基本:
const { name, age } = obj; - 別名の指定:
const { name: userName } = obj;とすることで、別の変数名で受け取ることも可能です。
3.6.2 配列の分割代入
Section titled “3.6.2 配列の分割代入”配列の要素を、インデックス順に変数へ割り当てます。
- 基本:
const [first, second] = arr; - 要素のスキップ:
const [, second] = arr;のようにカンマを重ねることで、特定の要素を飛ばして代入できます。
3.6.3 分割代入のデフォルト値
Section titled “3.6.3 分割代入のデフォルト値”抽出したいプロパティや要素が存在しない(undefined である)場合に備えて、デフォルト値を設定できます。
- 記法:
const { name = "unknown" } = obj; - 配列の場合:
const [first = 0] = arr;
3.6.4 rest パターンで残りの要素をまとめる
Section titled “3.6.4 rest パターンで残りの要素をまとめる”...(rest パターン)を使用すると、取り出した残りのプロパティや要素を、新しいオブジェクトや配列としてまとめることができます。
- オブジェクト:
const { id, ...rest } = obj;(id以外のプロパティがrestにまとめられる) - 配列:
const [first, ...rest] = arr;(2番目以降の要素がrest配列にまとめられる)