検索
ホームページウェブフロントエンドjsチュートリアルJavaScriptのオブジェクトと配列を破壊します

Destructuring Objects and Arrays in JavaScript

javascriptの解体と割り当て:コードを簡素化し、読みやすさを改善

JavaScriptの分解された割り当てにより、簡潔な構文を使用して配列またはオブジェクトから個々の要素を抽出し、変数に割り当て、コードを簡素化し、より明確かつ読みやすくすることができます。

API応答、機能的プログラミング、およびReactなどのフレームワークとライブラリなど、

分解と割り当てが広く使用されています。また、ネストされたオブジェクトと配列、デフォルトの関数パラメーター、可変値交換、関数からの複数の値を返す、ループのループ、および正規表現処理にも使用できます。

分解された割り当てを使用する場合、次のポイントに注意を払う必要があります。コードのブロックのように見えるため、カーリーブレースでステートメントを開始することはできません。エラーを回避するには、変数を宣言するか、変数が宣言されている場合はブラケットを使用します。また、宣言された変数と非宣言されていない変数の混合を避けるように注意してください。

分解割り当ての使用方法

配列の分解

配列があると仮定します:

分解は、各要素を抽出するためのより簡単でエラーが発生しない代替品を提供します:
const myArray = ['a', 'b', 'c'];

割り当て時に値名を省略することで特定の値を無視できます。たとえば、
const [one, two, three] = myArray;

// one = 'a', two = 'b', three = 'c'

または残りのオペレーター(...)を使用して、残りの要素を抽出します。
const [one, , three] = myArray;

// one = 'a', three = 'c'
オブジェクトの分解

const [one, ...two] = myArray;

// one = 'a', two = ['b', 'c']

解体はオブジェクトにも適用されます:

この例では、変数名は1、2、および3つの名前がオブジェクトプロパティ名と一致します。任意の名前の変数に属性を割り当てることもできます。

const myObject = {
  one:   'a',
  two:   'b',
  three: 'c'
};
// ES6 解构示例
const {one, two, three} = myObject;
// one = 'a', two = 'b', three = 'c'
ネストされたオブジェクトを分解

const myObject = {
  one:   'a',
  two:   'b',
  three: 'c'
};

// ES6 解构示例
const {one: first, two: second, three: third} = myObject;

// first = 'a', second = 'b', third = 'c'
より複雑なネストされたオブジェクトも参照できます。

これは少し複雑に思えますが、すべての分解された割り当てで覚えておいてください:

割り当ての左側は、分解ターゲットです - 割り当てられた変数を定義するパターン

割り当ての右側には、分解されたソースがあります - 抽出されたデータを含む配列またはオブジェクト
const meta = {
  title: 'Destructuring Assignment',
  authors: [
    {
      firstname: 'Craig',
      lastname: 'Buckler'
    }
  ],
  publisher: {
    name: 'SitePoint',
    url: 'https://www.sitepoint.com/'
  }
};

const {
    title: doc,
    authors: [{ firstname: name }],
    publisher: { url: web }
  } = meta;

/*
  doc   = 'Destructuring Assignment'
  name  = 'Craig'
  web   = 'https://www.sitepoint.com/'
*/

    予防策
  • 他にも注意すべきことがいくつかあります。まず、Curly Bracesでステートメントを開始することはできません。たとえば、コードブロックのように見えるため、

たとえば、変数を宣言する必要があります または変数が宣言されている場合はブラケットを使用します。たとえば、

また、次のような宣言された変数と宣言されていない変数の混合を避けるように注意する必要があります。
// 这会失败
{ a, b, c } = myObject;

上記は、脱構築の基本的な知識です。それで、それはどのような状況で機能しますか?この質問をしてくれてうれしいです。

// 这可以工作
const { a, b, c } = myObject;

分解されたユースケース

// 这可以工作
({ a, b, c } = myObject);

Simmer Statement
// 这会失败
let a;
let { a, b, c } = myObject;

// 这可以工作
let a, b, c;
({ a, b, c } = myObject);

変数は、各値を明示的に定義せずに宣言できます。

本物、分解されたバージョンはより長いです。読みやすいですが、より多くのアイテムの場合はそうではありません。

可変値交換

スワップ値には一時的な3番目の変数が必要ですが、分解の使用ははるかに簡単です。

2つの変数に限定されません。
const myArray = ['a', 'b', 'c'];

デフォルトの関数パラメーター

Metaオブジェクトを出力するためにPrettyPrint()関数があると仮定します:

const [one, two, three] = myArray;

// one = 'a', two = 'b', three = 'c'

分解がない場合は、適切なデフォルト値が利用可能であることを確認するために、このオブジェクトを解析する必要があります。

const [one, , three] = myArray;

// one = 'a', three = 'c'
ここで、デフォルト値を任意のパラメーターに割り当てることができます。たとえば、

const [one, ...two] = myArray;

// one = 'a', two = ['b', 'c']
しかし、解体を使用して値を抽出し、必要に応じてデフォルト値を割り当てることができます。

これが読みやすいかどうかはわかりませんが、明らかに短いです。
const myObject = {
  one:   'a',
  two:   'b',
  three: 'c'
};
// ES6 解构示例
const {one, two, three} = myObject;
// one = 'a', two = 'b', three = 'c'

関数から複数の値を返します

関数は1つの値のみを返すことができますが、これは複雑なオブジェクトまたは多次元配列になります。分解の割り当てにより、これはより実用的になります

loop
const myObject = {
  one:   'a',
  two:   'b',
  three: 'c'
};

// ES6 解构示例
const {one: first, two: second, three: third} = myObject;

// first = 'a', second = 'b', third = 'c'

本情報の配列を検討してください:

es6のfor-for-for-in-in-in-in-index/keyの代わりに各値を抽出することを除いて、:

const meta = {
  title: 'Destructuring Assignment',
  authors: [
    {
      firstname: 'Craig',
      lastname: 'Buckler'
    }
  ],
  publisher: {
    name: 'SitePoint',
    url: 'https://www.sitepoint.com/'
  }
};

const {
    title: doc,
    authors: [{ firstname: name }],
    publisher: { url: web }
  } = meta;

/*
  doc   = 'Destructuring Assignment'
  name  = 'Craig'
  web   = 'https://www.sitepoint.com/'
*/

分解の割り当ては、次のようなさらなる機能強化を提供します

// 这会失败
{ a, b, c } = myObject;

正規表現処理

// 这可以工作
const { a, b, c } = myObject;

正規表現関数(一致など)一致の配列を返します。これは、分解された割り当てのソースを構成できます。

さらに読み取り

// 这可以工作
({ a, b, c } = myObject);

分解の割り当て - MDN javascriptを使用して割り当ての分解にパフォーマンスの損失はありますか-Reddit

    for ... of Statement - mdn
  • ES6解体割り当て(FAQ)
  • に関するよくある質問

(長さが長すぎて擬似オリジナルの目標と一致しないため、FAQパーツはここで省略されています。FAQパーツの内容は元のテキストと非常に偶然のものであり、直接保持は擬似を引き起こします-ORIGINALITYが低すぎるように。)ステートメントの調整、同義語の置換、元のテキストの再編成を行うことにより、元のテキストの擬似オリジナル処理が完了し、写真の元の形式と場所が保持されます。

以上がJavaScriptのオブジェクトと配列を破壊しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptのコア:CまたはCの上に構築されていますか?JavaScriptのコア:CまたはCの上に構築されていますか?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptアプリケーション:フロントエンドからバックエンドまでJavaScriptアプリケーション:フロントエンドからバックエンドまでMay 04, 2025 am 12:12 AM

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

Python vs. Javascript:どの言語を学ぶべきですか?Python vs. Javascript:どの言語を学ぶべきですか?May 03, 2025 am 12:10 AM

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

JavaScriptフレームワーク:最新のWeb開発のパワーJavaScriptフレームワーク:最新のWeb開発のパワーMay 02, 2025 am 12:04 AM

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

JavaScript、C、およびブラウザの関係JavaScript、C、およびブラウザの関係May 01, 2025 am 12:06 AM

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、型を使用してストリーミングしますnode.jsは、型を使用してストリーミングしますApr 30, 2025 am 08:22 AM

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

Python vs. JavaScript:パフォーマンスと効率の考慮事項Python vs. JavaScript:パフォーマンスと効率の考慮事項Apr 30, 2025 am 12:08 AM

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptの起源:その実装言語の調査JavaScriptの起源:その実装言語の調査Apr 29, 2025 am 12:51 AM

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、