見出し画像

Velo 第78回 分割代入

Javascript で代入式を上手に使うお話です。
配列やオブジェクトは構造化されたデータです。
従って個々の値を変数に代入するためにはインデックスやキーを定めて取り出すことになります。
例えば以下の例を見てみましょう。

配列

配列の値を取り出す

上図では配列の値を一般的な方法で取り出す例を示しています。
しかし代入の左辺にも配列の構造を持ち込めばどうなるでしょうか。
下図で調べてみましょう。

配列の値を取り出す

右辺の構造がそのまま左辺に展開されc、d、eには配列の値がそのまま代入されています。
分割代入とはこのことを指します。

配列は反復可能オブジェクトですので、代入にもその仕組みが使われています。
つまり左辺が右辺の構造をすべて反映しなくても代入は部分的に行われます。
以下の図をご覧下さい。

分割代入

配列 a から反復して左辺に値が代入されますが、左辺は変数が2個なのでそこで終了しています。
このように代入においては反復する仕組みが大切なのであって、配列の形は拘るところではありません。

以下の図では左辺にスプレッド演算子を用いて j 以外の値からなる配列を k で表しています。
従って j には値1 が、k には配列[2, 3] が代入されます。

分割代入

変数 x, y の値を交換するときなども [x, y] = [y, x] と置けば大丈夫です。

オブジェクト

分割代入はオブジェクトにも使えます。一般的なオブジェクトを使った代入方法は以下の様になります。

オブジェクトの値を取り出す

オブジェクトの分割代入ではそのキーを指定する必要があります。
以下の図をご覧下さい。

分割代入

オブジェクト p には2つのキー x、y がありますのでそれぞれの値を取り出すために分割代入を使っています。

関数

関数の戻り値は1つに限られます。
従って2つ以上の値を戻すときには配列やオブジェクトで返すことになります。
その場合、個々の値を取り出すときに分割代入を使うと大変便利です。

戻り値に分割代入を使う

3行目でオブジェクトから分割代入を使って変数に値を取り込んでいます。ただし変数名はキーの値になります。

Velo開発のご依頼はこちら

いいなと思ったら応援しよう!