スプレッド&レスト演算子

Aug 21, 2024 am 06:10 AM

Spread & Rest Operator

  • 既存の配列から文字ノイズの少ない新しい配列を形成します。
  • Spread は要素を値として抽出します。これは不変関数です。
  • [] は新しい配列を書き込む方法です。したがって、spread は元の配列を変更しません。
  • Spread は配列だけでなく、すべての反復可能オブジェクトに対して機能します。
  • 反復可能: String、Array、Map、Set、つまりオブジェクト データ型を除くほとんどの組み込みデータ構造。
  • 分割との違い: 配列からすべての要素を抽出し、新しい変数を作成せず、値 CSV が必要な場所でのみ使用されます。
  • 配列を構築するとき、または値を関数に渡すときに使用されます。
const nums = [5,6,7];
const newNums = [1,2, nums[0],nums[1],nums[2]];
console.log(newNums); // [ 1, 2, 5, 6, 7 ]

is reduced to 

const nums = [5,6,7];
const newNums = [1,2, ...nums];
console.log(newNums); // [ 1, 2, 5, 6, 7 ]
console.log(...newNums); // 1 2 5 6 7
ログイン後にコピー

1. 2 つの配列を結合する

const arr1 = [1,2,3,4,5];
const arr2 = [6,7,8,9];

let nums = [...arr1,...arr2];
nums; // [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]


const firstname = "Peter";
const fullName = [...firstname,' ',"P."];
fullName; // [ 'P', 'e', 't', 'e', 'r', ' ', 'P.' ]

console.log(...firstname); // 'P' 'e' 't' 'e' 'r'
ログイン後にコピー
  • エラーの原因: テンプレート文字列は内部に複数の値を想定していないため、スプレッド演算子はテンプレート文字列内では機能しません。

2. 配列の浅いコピーの作成

const girl = {
  name: 'Melania',
  friends: ['Alina', 'Alice', 'Ayesha', 'Anamika', 'Anaya']
};

const frnz = [...girl.friends];
console.log(frnz); // [ 'Alina', 'Alice', 'Ayesha', 'Anamika', 'Anaya' ]
console.log(girl.friends); // [ 'Alina', 'Alice', 'Ayesha', 'Anamika', 'Anaya' ]
ログイン後にコピー

Spread は、オブジェクトが反復可能ではない場合でもオブジェクトに対して機能します。

let male = {
  "firstName": "Gangadhar",
  "lastName": "Shaktimaan"
}

let female = {
  "firstName": "Geeta",
  "lastName": "Vishwas"
}

let x = {...male, born: 1950};
let y = {...female, born: 1940};

x; // { firstName: 'Gangadhar',   lastName: 'Shaktimaan',   born: 1950 }
y; // { firstName: 'Geeta',  lastName: 'Vishwas',  born: 1940 }```




## Shallow Copy of objects:

let male = {
  "firstName": "Gangadhar",
  "lastName": "Shaktimaan"
}

let character = {...male, firstName: 'Wonderwoman'};

male;         // { firstName: 'Gangadhar', lastName: 'Shaktimaan' }
character;    // { firstName: 'Wonderwoman', lastName: 'Shaktimaan' }

- First name for character object is changed although it was extracted from male object


ログイン後にコピー

休符パターンと休符パラメータ:

  • Rest は Spread の逆の動作をしますが、Spread と同じ構文を持ちます。
  • Spread は、新しい配列を構築するか、値を fn に渡すために使用されました。どちらの場合も、要素を展開するためにスプレッドが使用されました。
  • Rest は同じ構文を使用しますが、それらの値を 1 つの
  • に凝縮します。
  • Spread は配列から要素をアンパックするためのもので、Rest は要素を配列にパックするためのものです。 「」

スプレッド演算子とレスト演算子の構文の違い:
スプレッド演算子 => ... 代入演算子の右側で使用されます。
const nums = [9,4, ...[2,7,1]];

残り演算子 => ... 分割演算子を使用した代入演算子の左側に配置されます
const [x,y,...z] = [9,4, 2,7,1];

## Rest syntax collects all the elements after the last elements into an array. Doesn't include any skipped elements. 
- Hence, it should be the last element in the destructuring assignment.
- There can be only one rest in any destructuring assignment.
ログイン後にコピー

ダイエットをしましょう = ['ピザ', 'バーガー','ヌードル','ロースト','寿司','ドーサ','ウッタパム'];

[最初、、、三番目、...その他] = ダイエット;
最初に;
3 番目;
その他;

- Rest also works with objects. Only difference is that elements will be collected into a new object instead of an arrray.
ログイン後にコピー

let days = { 'mon':1,'tue':2,'wed':3,'thu':4,'fri':5,'sat':6,'sun':7};
let {sat, sun, ...working} = days;
let off = {土、日};

働いています。 // { 月: 1、火: 2、水: 3、木: 4、金: 5 }
オフ; // { 土: 6、日: 7 }

- Although both look same, but they work differently based on where they are used.

ログイン後にコピー

レストとスプレッドの微妙な違い:

  • カンマで区切って値を記述する場合はスプレッド演算子が使用されます
  • 残りのパターンが使用され、変数名をカンマで区切って記述します。

ログイン後にコピー

以上がスプレッド&レスト演算子の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScriptの文字列文字を交換します

カスタムGoogle検索APIセットアップチュートリアル カスタムGoogle検索APIセットアップチュートリアル Mar 04, 2025 am 01:06 AM

カスタムGoogle検索APIセットアップチュートリアル

例JSONファイルの例 例JSONファイルの例 Mar 03, 2025 am 12:35 AM

例JSONファイルの例

8見事なjQueryページレイアウトプラグイン 8見事なjQueryページレイアウトプラグイン Mar 06, 2025 am 12:48 AM

8見事なjQueryページレイアウトプラグイン

10 jQuery構文蛍光物 10 jQuery構文蛍光物 Mar 02, 2025 am 12:32 AM

10 jQuery構文蛍光物

独自のAjax Webアプリケーションを構築します 独自のAjax Webアプリケーションを構築します Mar 09, 2025 am 12:11 AM

独自のAjax Webアプリケーションを構築します

' this' JavaScriptで? ' this' JavaScriptで? Mar 04, 2025 am 01:15 AM

' this' JavaScriptで?

10 JavaScript&JQuery MVCチュートリアル 10 JavaScript&JQuery MVCチュートリアル Mar 02, 2025 am 01:16 AM

10 JavaScript&JQuery MVCチュートリアル

See all articles