スプレッド&レスト演算子
Aug 21, 2024 am 06:10 AM- 既存の配列から文字ノイズの少ない新しい配列を形成します。
- 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 までご連絡ください。

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック
Gmailメールのログイン入り口はどこですか?
7283
9


Java チュートリアル
1622
14


CakePHP チュートリアル
1342
46


Laravel チュートリアル
1259
25


PHP チュートリアル
1205
29

