Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Kloning och Sammanslagning av Objekt med Spread-Operatorn | Avancerade Tekniker för Objektmanipulation
Javascript Datastrukturer

bookKloning och Sammanslagning av Objekt med Spread-Operatorn

Spridningsoperatorn, betecknad med ..., är ett användbart verktyg för att skapa nya objekt genom att slå samman och kopiera egenskaper från befintliga objekt. Med spridningsoperatorn kan vi utföra följande uppgifter:

  • Klona objekt;
  • Lägga till eller ändra egenskaper;
  • Skapa nya objekt.

Låt oss fokusera på hur man använder spridningsoperatorn med objekt.

Spridningsoperator

När den används med objekt kopierar spridningsoperatorn alla uppräkningsbara egenskaper från källobjektet till ett nytt objekt.

Grundläggande syntax:

const newObject = { ...sourceObject }; 
  • newObject: det nya objekt vi vill skapa;
  • sourceObject: källobjektet vars egenskaper vi vill kopiera.

Klona ett objekt

Spridningsoperatorn gör det möjligt att skapa en ytlig klon av ett objekt. Detta är användbart när vi vill bevara det ursprungliga objektet och arbeta med en modifierad kopia.

const originalObject = {
  name: "Diamond Kite",
  color: "purple",
};

// Create a cloned object by spreading the original object
const clonedObject = { ...originalObject }; // Cloning with the help of the spread operator

// Add a new property to the cloned object
clonedObject.size = "large"; // Adding a new property to the cloned object

console.log(originalObject); // Output: {name: 'Diamond Kite', color: 'purple'}
console.log(clonedObject); // Output: {name: 'Diamond Kite', color: 'purple', size: 'large'}

I det här exemplet är clonedObject ett nytt objekt som är en klon av originalObject. Eventuella ändringar som görs i clonedObject påverkar inte originalObject. Därför har clonedObject tre egenskaper och originalObject har endast två.

Lägga till eller ändra egenskaper

Spridningsoperatorn kan även användas för att skapa ett nytt objekt med ytterligare eller ändrade egenskaper.

const waterBottle = {
  brand: "HydroFlask",
  capacity: 32,
};

const extendedWaterBottle = {
  ...waterBottle,
  color: "blue",
  capacity: 24,
};

console.log(waterBottle); // Output: {brand: 'HydroFlask', capacity: 32}
console.log(extendedWaterBottle); // Output: {brand: 'HydroFlask', capacity: 24, color: 'blue'}

I det här exemplet skapas extendedWaterBottle genom att egenskaperna från waterBottle sprids ut. Dessutom läggs egenskapen color till och egenskapen capacity skrivs över.

Slå samman objekt

Spridningsoperatorn kan slå samman två eller flera objekt till ett. Detta är användbart vid kombination av funktioner, inställningar, konfigurationer eller data från olika källor.

const apartmentFeatures = {
  size: "1200 square feet",
  bedrooms: 2,
  bathrooms: 2,
};

const apartmentDetails = {
  rent: 2000,
  location: "Downtown City",
};

const apartment = { ...apartmentFeatures, ...apartmentDetails };
console.log(apartment); // Output: {size: '1200 square feet', bedrooms: 2, bathrooms: 2, rent: 2000, location: 'Downtown City'}

I detta exempel skapas apartment genom att egenskaperna från apartmentFeatures och apartmentDetails slås samman.

1. Vad är syftet med spridningsoperatorn (...)?

2. Vilken syntax används för att använda spread-operatorn för att skapa ett nytt objekt genom att kopiera egenskaper från ett befintligt objekt?

3. I exemplet nedan med sammanslagning av objekt, vad innehåller objektet resultObj efter att spread-operatorn har använts?

question mark

Vad är syftet med spridningsoperatorn (...)?

Select the correct answer

question mark

Vilken syntax används för att använda spread-operatorn för att skapa ett nytt objekt genom att kopiera egenskaper från ett befintligt objekt?

Select the correct answer

question mark

I exemplet nedan med sammanslagning av objekt, vad innehåller objektet resultObj efter att spread-operatorn har använts?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you explain the difference between shallow and deep cloning with the spread operator?

What happens if two objects have properties with the same name when merging?

Can you show more examples of using the spread operator with objects?

bookKloning och Sammanslagning av Objekt med Spread-Operatorn

Svep för att visa menyn

Spridningsoperatorn, betecknad med ..., är ett användbart verktyg för att skapa nya objekt genom att slå samman och kopiera egenskaper från befintliga objekt. Med spridningsoperatorn kan vi utföra följande uppgifter:

  • Klona objekt;
  • Lägga till eller ändra egenskaper;
  • Skapa nya objekt.

Låt oss fokusera på hur man använder spridningsoperatorn med objekt.

Spridningsoperator

När den används med objekt kopierar spridningsoperatorn alla uppräkningsbara egenskaper från källobjektet till ett nytt objekt.

Grundläggande syntax:

const newObject = { ...sourceObject }; 
  • newObject: det nya objekt vi vill skapa;
  • sourceObject: källobjektet vars egenskaper vi vill kopiera.

Klona ett objekt

Spridningsoperatorn gör det möjligt att skapa en ytlig klon av ett objekt. Detta är användbart när vi vill bevara det ursprungliga objektet och arbeta med en modifierad kopia.

const originalObject = {
  name: "Diamond Kite",
  color: "purple",
};

// Create a cloned object by spreading the original object
const clonedObject = { ...originalObject }; // Cloning with the help of the spread operator

// Add a new property to the cloned object
clonedObject.size = "large"; // Adding a new property to the cloned object

console.log(originalObject); // Output: {name: 'Diamond Kite', color: 'purple'}
console.log(clonedObject); // Output: {name: 'Diamond Kite', color: 'purple', size: 'large'}

I det här exemplet är clonedObject ett nytt objekt som är en klon av originalObject. Eventuella ändringar som görs i clonedObject påverkar inte originalObject. Därför har clonedObject tre egenskaper och originalObject har endast två.

Lägga till eller ändra egenskaper

Spridningsoperatorn kan även användas för att skapa ett nytt objekt med ytterligare eller ändrade egenskaper.

const waterBottle = {
  brand: "HydroFlask",
  capacity: 32,
};

const extendedWaterBottle = {
  ...waterBottle,
  color: "blue",
  capacity: 24,
};

console.log(waterBottle); // Output: {brand: 'HydroFlask', capacity: 32}
console.log(extendedWaterBottle); // Output: {brand: 'HydroFlask', capacity: 24, color: 'blue'}

I det här exemplet skapas extendedWaterBottle genom att egenskaperna från waterBottle sprids ut. Dessutom läggs egenskapen color till och egenskapen capacity skrivs över.

Slå samman objekt

Spridningsoperatorn kan slå samman två eller flera objekt till ett. Detta är användbart vid kombination av funktioner, inställningar, konfigurationer eller data från olika källor.

const apartmentFeatures = {
  size: "1200 square feet",
  bedrooms: 2,
  bathrooms: 2,
};

const apartmentDetails = {
  rent: 2000,
  location: "Downtown City",
};

const apartment = { ...apartmentFeatures, ...apartmentDetails };
console.log(apartment); // Output: {size: '1200 square feet', bedrooms: 2, bathrooms: 2, rent: 2000, location: 'Downtown City'}

I detta exempel skapas apartment genom att egenskaperna från apartmentFeatures och apartmentDetails slås samman.

1. Vad är syftet med spridningsoperatorn (...)?

2. Vilken syntax används för att använda spread-operatorn för att skapa ett nytt objekt genom att kopiera egenskaper från ett befintligt objekt?

3. I exemplet nedan med sammanslagning av objekt, vad innehåller objektet resultObj efter att spread-operatorn har använts?

question mark

Vad är syftet med spridningsoperatorn (...)?

Select the correct answer

question mark

Vilken syntax används för att använda spread-operatorn för att skapa ett nytt objekt genom att kopiera egenskaper från ett befintligt objekt?

Select the correct answer

question mark

I exemplet nedan med sammanslagning av objekt, vad innehåller objektet resultObj efter att spread-operatorn har använts?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5
some-alt