Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Olioiden Kloonaus ja Yhdistäminen Spread-operaattorilla | Edistyneet Olionkäsittelytekniikat
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Javascriptin tietorakenteet

bookOlioiden Kloonaus ja Yhdistäminen Spread-operaattorilla

Levitelyöntioperaattori, jota merkitään ..., on hyödyllinen työkalu uusien olioiden luomiseen yhdistämällä ja kopioimalla ominaisuuksia olemassa olevista olioista. Levitelyöntioperaattorin avulla voidaan suorittaa seuraavat tehtävät:

  • Kloonata olioita;
  • Lisätä tai muokata ominaisuuksia;
  • Luoda uusia olioita.

Tarkastellaan, miten levitelyöntioperaattoria käytetään olioiden kanssa.

Levitelyöntioperaattori

Kun levitelyöntioperaattoria käytetään olioiden kanssa, se kopioi kaikki enumeroitavat ominaisuudet lähdeoliosta uuteen olioon.

Perussyntaksi:

const newObject = { ...sourceObject }; 
  • newObject: uusi olio, jonka haluamme luoda;
  • sourceObject: lähdeolio, jonka ominaisuudet haluamme kopioida.

Olion kloonaaminen

Levitelyöntioperaattorin avulla voidaan luoda olion matala klooni. Tämä on hyödyllistä, kun halutaan säilyttää alkuperäinen olio ja työskennellä muokatun kopion kanssa.

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'}

Tässä esimerkissä clonedObject on uusi objekti, joka on kopio originalObject:sta. Kaikki muutokset, jotka tehdään clonedObject:iin, eivät vaikuta originalObject:iin. Siksi clonedObject:lla on kolme ominaisuutta ja originalObject:lla vain kaksi.

Ominaisuuksien lisääminen tai muokkaaminen

Voit myös käyttää spread-operaattoria luodaksesi uuden objektin, jossa on lisättyjä tai muokattuja ominaisuuksia.

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'}

Tässä esimerkissä extendedWaterBottle luodaan levittämällä waterBottle:n ominaisuudet. Lisäksi color-ominaisuus lisätään ja capacity-ominaisuus korvataan.

Objektien yhdistäminen

Spread-operaattorilla voidaan yhdistää kaksi tai useampia objekteja yhdeksi. Tämä on hyödyllistä, kun halutaan yhdistää ominaisuuksia, asetuksia, konfiguraatioita tai tietoja eri lähteistä.

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'}

Tässä esimerkissä apartment luodaan yhdistämällä apartmentFeatures- ja apartmentDetails-objektien ominaisuudet.

1. Mikä on spread-operaattorin (...) tarkoitus?

2. Mikä on syntaksi, jolla käytetään spread-operaattoria uuden olion luomiseen kopioimalla ominaisuudet olemassa olevasta oliosta?

3. Alla olevassa esimerkissä olioiden yhdistämisestä, mitä resultObj sisältää spread-operaattorin käytön jälkeen?

question mark

Mikä on spread-operaattorin (...) tarkoitus?

Select the correct answer

question mark

Mikä on syntaksi, jolla käytetään spread-operaattoria uuden olion luomiseen kopioimalla ominaisuudet olemassa olevasta oliosta?

Select the correct answer

question mark

Alla olevassa esimerkissä olioiden yhdistämisestä, mitä resultObj sisältää spread-operaattorin käytön jälkeen?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

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?

bookOlioiden Kloonaus ja Yhdistäminen Spread-operaattorilla

Pyyhkäise näyttääksesi valikon

Levitelyöntioperaattori, jota merkitään ..., on hyödyllinen työkalu uusien olioiden luomiseen yhdistämällä ja kopioimalla ominaisuuksia olemassa olevista olioista. Levitelyöntioperaattorin avulla voidaan suorittaa seuraavat tehtävät:

  • Kloonata olioita;
  • Lisätä tai muokata ominaisuuksia;
  • Luoda uusia olioita.

Tarkastellaan, miten levitelyöntioperaattoria käytetään olioiden kanssa.

Levitelyöntioperaattori

Kun levitelyöntioperaattoria käytetään olioiden kanssa, se kopioi kaikki enumeroitavat ominaisuudet lähdeoliosta uuteen olioon.

Perussyntaksi:

const newObject = { ...sourceObject }; 
  • newObject: uusi olio, jonka haluamme luoda;
  • sourceObject: lähdeolio, jonka ominaisuudet haluamme kopioida.

Olion kloonaaminen

Levitelyöntioperaattorin avulla voidaan luoda olion matala klooni. Tämä on hyödyllistä, kun halutaan säilyttää alkuperäinen olio ja työskennellä muokatun kopion kanssa.

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'}

Tässä esimerkissä clonedObject on uusi objekti, joka on kopio originalObject:sta. Kaikki muutokset, jotka tehdään clonedObject:iin, eivät vaikuta originalObject:iin. Siksi clonedObject:lla on kolme ominaisuutta ja originalObject:lla vain kaksi.

Ominaisuuksien lisääminen tai muokkaaminen

Voit myös käyttää spread-operaattoria luodaksesi uuden objektin, jossa on lisättyjä tai muokattuja ominaisuuksia.

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'}

Tässä esimerkissä extendedWaterBottle luodaan levittämällä waterBottle:n ominaisuudet. Lisäksi color-ominaisuus lisätään ja capacity-ominaisuus korvataan.

Objektien yhdistäminen

Spread-operaattorilla voidaan yhdistää kaksi tai useampia objekteja yhdeksi. Tämä on hyödyllistä, kun halutaan yhdistää ominaisuuksia, asetuksia, konfiguraatioita tai tietoja eri lähteistä.

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'}

Tässä esimerkissä apartment luodaan yhdistämällä apartmentFeatures- ja apartmentDetails-objektien ominaisuudet.

1. Mikä on spread-operaattorin (...) tarkoitus?

2. Mikä on syntaksi, jolla käytetään spread-operaattoria uuden olion luomiseen kopioimalla ominaisuudet olemassa olevasta oliosta?

3. Alla olevassa esimerkissä olioiden yhdistämisestä, mitä resultObj sisältää spread-operaattorin käytön jälkeen?

question mark

Mikä on spread-operaattorin (...) tarkoitus?

Select the correct answer

question mark

Mikä on syntaksi, jolla käytetään spread-operaattoria uuden olion luomiseen kopioimalla ominaisuudet olemassa olevasta oliosta?

Select the correct answer

question mark

Alla olevassa esimerkissä olioiden yhdistämisestä, mitä resultObj sisältää spread-operaattorin käytön jälkeen?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 5
some-alt