本記事では、JavaScriptの配列の分割代入について詳しく解説しています。
JavaScriptの学習におすすめ参考書
改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで
先輩くん
10万部突破したJavaScriptの本が大幅増補改訂し7年ぶりに発売されたよ!
後輩ちゃん
最新の基本文法から、開発に欠かせない応用トピックまで学ぶことが出来るよ!
綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!
配列の分割代入の書き方
配列の分割代入の基本的な書き方は以下のとおりです。
let [a01, a02, a03, a04, a05] = ["apple", "banana", "melon", "strawberry", "grape"];
console.log(a01); // => apple
console.log(a02); // => banana
console.log(a03); // => melon
console.log(a04); // => strawberry
console.log(a05); // => grape
配列の要素数分だけ変数を用意し、[]で囲います。
先輩くん
基本的な使い方はこれでOKだよ!
以降の解説では、みんなが思うであろう疑問やチョットした小技テクニックについて解説していくね!
代入先の変数が少ない場合
代入先の変数が少ない場合を見てみましょう。
let [a01, a02, a03, a04] = ["apple", "banana", "melon", "strawberry", "grape"];
console.log(a01); // => apple
console.log(a02); // => banana
console.log(a03); // => melon
console.log(a04); // => strawberry
配列の最終要素(grape)は無視され、どの変数にも代入されません。
代入先の変数が多い場合
代入先の変数が多い場合を見てみましょう。
let [a01, a02, a03, a04, a05, a06] = ["apple", "banana", "melon", "strawberry", "grape"];
console.log(a01); // => apple
console.log(a02); // => banana
console.log(a03); // => melon
console.log(a04); // => strawberry
console.log(a05); // => grape
console.log(a06); // => undefined
配列の要素数が5つに対して、代入先の変数を6つ設定しています。この場合、6つ目の変数には未定義である「undefined」が代入されます。
一部の配列要素だけ取得したい場合
先頭のn個・中央のn個は使わないから変数に代入する必要がない場合は、以下のように記述します。
let [, a02, , a04, ,] = ["apple", "banana", "melon", "strawberry", "grape"];
console.log(a02); // => banana
console.log(a04); // => strawberry
配列の取得したい位置以外は空白にし、「,」で区切ることで不必要な配列要素は代入せず必要な配列要素のみ取得することが出来ます。
余った配列の要素をまとめて取得したい場合
代入先の変数が少なく余った配列の要素もまとめて取得したい場合は、以下のように記述します。
let [a01, a02, ...other] = ["apple", "banana", "melon", "strawberry", "grape"];
console.log(a01); // => apple
console.log(a02); // => banana
console.log(other); // => ['melon', 'strawberry', 'grape']
変数の最終位置に「…」演算子を使った変数を配置します。代入された配列の要素が1つの場合でも配列として代入されます。もし、配列の要素が余らなかった場合は空配列が代入されます。