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

JavaScriptのオブジェクトと配列を破壊します

Feb 15, 2025 am 10:52 AM

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 までご連絡ください。

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

JavaScriptとWeb:コア機能とユースケース JavaScriptとWeb:コア機能とユースケース Apr 18, 2025 am 12:19 AM

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScript in Action:実際の例とプロジェクト JavaScript in Action:実際の例とプロジェクト Apr 19, 2025 am 12:13 AM

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

JavaScriptエンジンの理解:実装の詳細 JavaScriptエンジンの理解:実装の詳細 Apr 17, 2025 am 12:05 AM

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Python vs. JavaScript:コミュニティ、ライブラリ、リソース Python vs. JavaScript:コミュニティ、ライブラリ、リソース Apr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Python vs. JavaScript:開発環境とツール Python vs. JavaScript:開発環境とツール Apr 26, 2025 am 12:09 AM

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

JavaScript通訳者とコンパイラにおけるC/Cの役割 JavaScript通訳者とコンパイラにおけるC/Cの役割 Apr 20, 2025 am 12:01 AM

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

Webサイトからアプリまで:JavaScriptの多様なアプリケーション Webサイトからアプリまで:JavaScriptの多様なアプリケーション Apr 22, 2025 am 12:02 AM

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

See all articles