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

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