Javascript ES6の分割代入(destructuring)の使い方まとめ: 配列とオブジェクトそれぞれの場合: Descructuring for Arrays and Objects

分割代入を使うと配列の値やオブジェクトのプロパティを取り出し、別の変数に代入することができます。スプレッド構文のような配列やオブジェクト自体の完全コピーとは違い、分割代入では配列やオブジェクトの「一部」の値やプロパティにだけアクセスして別の変数に代入することが可能なのが特徴です。

配列に分割代入(destructuring)を使う場合

例その1:返り値の無視

const numbers = [1,2,3];
[num1, ,num3] = numbers;
console.log(num1, num3); 

//1
//3

 

num1とnum3の間に, ,があり、num2に代入していなく戻り地も無視しているケースです。(Mozillaの説明ページにも似たような例がありました。)

例その2:簡単な使い方

const array = [1, 2, 3];
const [a, b] = array;
console.log(a); // prints 1
console.log(b); //prints 2
console.log(array); //prints [1, 2, 3]

aに1、bに2が代入されています。最後のconsole.log(array)では、元々のarray [1, 2, 3] が結果として表示されるのがポイントですね。

オブジェクトに分割代入(destructuring)を使う場合

const myObj = {
name: 'Max',
age: 28
 }

const {name} = myObj;

ここで、console.log(name); とすると、'Max'とconsoleに表示されます。
console.log(age);では、undefined(またはエラー)となってしまい、何も取り出せません。
console.log(myObj); では、元のmyObjの中身{name: 'Max', age:28} が表示されます。

Javascriptの分割代入(でストラクチャリング)の様々な使い方ついて

Mozillaの分割代入(Destructuring assignment)構文についてのページはこちら。

分割代入(Mozilla)

Javascriptの分割代入(destructuring)の様々な使い方については、Qiitaのこちらの記事がとても参考になりました。

JavaScript 分割代入(デストラクチャリング)(Qiita)

現在学習中の教材:Udemy: React -The Complete Guide(incl Hooks, React Router, Redux) by maximilian Schwarzmuller

Section2: Refreshing Next Generation Javascript (Optional)

16~23 Javascriptの復習(ES6, ES7, 知っておくべきこと)

Section3: Understanding the Base Features & Syntax

24~25: Module Introduction ~ The Build Workflow

★このブログの内容はSec2.Lec18 Destructuring(分割代入)についてです。

【私も学習中のUdemy講座の公式HPはこちら⇒】世界最大級のオンライン学習サイトUdemy

関連キーワード
Javascript/React/Reduxの関連記事
  • プログラミング学習44
    Javascript React: CSS modulesとは?使い方について詳しく説明してあるサイトのリンクまとめ
  • プログラミング学習42
    Javascript:条件(三項)演算子とは何?定義・読み方・使い方まとめ(例文あり): How to read and use The Conditiong (Ternary) Operator with Demo code
  • プログラミング学習41
    DOMとは何か?JavaScriptやhmtlとの違いとは?定義のまとめ
  • Javascript ES6の分割代入(destructuring)の使い方まとめ: 配列とオブジェクトそれぞれの場合: Descructuring for Arrays and Objects
  • Javascript ES6: スプレッド構文(演算子)とレスト構文(パラメータ)の使い方まとめ:Spread Operator & Rest Operator
  • 【Javascript ES7 & React】constructorやsuper(); this.を使わないClassの新しい書き方: Classes&Properties & Methods【ES6との違い】
おすすめの記事