[JavaScript] 分割代入について

JavaScriptのロゴ
  • URLをコピーしました!
目次

分割代入

 

以下の例を見たほうが早い.

// 普通の代入をするなら以下のようにする.
var data = [10, 20, 30, 40, 50, 60];
var x0 = data[0];
var x1 = data[1];
var x2 = data[2];

// 分割代入を使えば,これを1行にまとめられる.
let data1 = [10, 20, 30, 40, 50, 60]; 
let [x0, x1, x2, x3, x4, x5] = data;

console.log(x0);  // 結果:10
console.log(x4);  // 結果:50

 

「…」演算子を使うことで,個々の変数に分解されなかった残りの要素をまとめて配列として切り出すことも可能.

let data2 = [1, 2, 3, 4, 5, 6]; 
let [y0, y1, y2, ...other] = data2; 

console.log(y2); // 結果:3 
console.log(other); // 結果:[4, 5, 6]

 

分割代入を使えば,変数の入れ替えも可能.

let x = 1;
let y = 2;
[x, y] = [y, x];
console.log(x, y);  // 結果:2 1

 

連想配列に関しても,オブジェクトのプロパティを変数に分解することも可能.

var book = {title:'スタンフォードの自分を変える教室', publish:'大和書房', price:1500};
var {price, title, memo='なし'} = book;

console.log(title);  // 結果:スタンフォードの自分を変える教室
console.log(price);  // 結果:1500
console.log(memo);  // 結果:なし


// 入れ子構造のオブジェクトを変数に分解するには「{}」を使う
var book = {title:'スタンフォードの自分を変える教室', publish:'大和書房', price:1500, other:{keywd:'意志力', 著者:'ケリー・マクゴニガル'}};
var {title, other, other:{keywd}} = book;

console.log(other);  // 結果:{keywd:'意志力', 著者:'ケリー・マクゴニガル'}
console.log(keywd);  // 結果:意志力


// 変数に別名を指定するには「:」を使う
var book = {title:'スタンフォードの自分を変える教室', publish:'大和書房', price:1500}; 
var {title:name, publish:company} = book;

console.log(name);  // 結果:スタンフォードの自分を変える教室
console.log(company);  // 結果:大和書房


// 変数宣言と代入を別々にするには「()」を使う
var x, y, memo;
({x, y, memo='なし'} = book);

 

この記事を書いた人

コメント

コメントする

目次