Heim >Web-Frontend >js-Tutorial >Spread & Rest-Operator

Spread & Rest-Operator

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2024-08-21 06:10:051297Durchsuche

Spread & Rest Operator

  • Bilden Sie ein neues Array aus einem vorhandenen Array mit weniger Zeichenrauschen.
  • Spread extrahiert die Elemente als Werte. Es ist eine unveränderliche Funktion.
  • [] ist die Möglichkeit, neue Arrays zu schreiben. Daher verändert die Ausbreitung nicht das ursprüngliche Array.
  • Spread funktioniert auf allen Iterables, nicht nur auf Arrays.
  • Iterables: String, Array, Map, Set, d. h. meist integrierte Datenstrukturen mit Ausnahme des Objektdatentyps.
  • Unterschied zur Destrukturierung: Extrahiert alle Elemente aus einem Array und erstellt keine neuen Variablen, sondern wird nur an Stellen verwendet, die CSV-Werte erfordern.
  • Wird verwendet, wenn wir ein Array erstellen oder wenn wir Werte an eine Funktion übergeben.
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. Führen Sie zwei Arrays zusammen

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'
  • FEHLERQUELLE: Der Spread-Operator funktioniert nicht innerhalb einer Vorlagenzeichenfolge, da die Vorlagenzeichenfolge nicht mehrere Werte darin erwartet.

2. Erstellen flacher Kopien von Arrays

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 funktioniert auch bei Objekten, auch wenn diese nicht iterierbar sind.

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


Ruhemuster und Ruheparameter:

  • Rest macht das Gegenteil von spread, hat aber die gleiche Syntax wie spread.
  • Spread wurde verwendet, um neue Arrays zu erstellen oder Werte an einen FN zu übergeben. In beiden Fällen wurde Spread verwendet, um Elemente zu erweitern.
  • Rest verwendet dieselbe Syntax, fasst diese Werte jedoch zu einem einzigen zusammen
  • Spread dient zum Entpacken von Elementen aus einem Array, Rest zum Packen von Elementen in ein Array. „

Unterschied in der Syntax des Spread- und Rest-Operators:
Spread-Operator => ... werden auf der rechten Seite des Zuweisungsoperators verwendet.
const nums = [9,4, ...[2,7,1]];

Rest-Operator => ... wird auf der linken Seite des Zuweisungsoperators mit Destrukturierung sein
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.

let diet = ['pizza', 'burger','noodles','roasted','sushi','dosa','uttapam'];

let [first, ,dritte, ...others] = diät;
zuerst;
dritter;
andere;

- 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} = Tage;
loslassen = {Sa, So};

arbeitend; // { Mo: 1, Di: 2, Mi: 3, Do: 4, Fr: 5 }
aus; // { Sa: 6, So: 7 }

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

Subtile Unterscheidung s/w Ruhe und Ausbreitung:

  • Spread-Operator wird verwendet, wenn wir durch Kommas getrennte Werte schreiben würden
  • Rest-Muster wird verwendet, wir würden Variablennamen durch Kommas getrennt schreiben.

Das obige ist der detaillierte Inhalt vonSpread & Rest-Operator. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn