Objektitaulukon keskiarvot keyn perusteella

Anonyymi

Reducella saa ainakin jokaisen arvon erikseen näppärästi, mutta voikohan sitä käyttää myös jotenkin "niputettuna", että selvittäisiin yhdellä silmukalla, ettei ao. esimerkissä tarvitsisi tehdä jokaiselle keylle omaa reducea.

Eli että saataisiin heitetty suoraan muuttujiin [xKeskiarvo, yKeskiarvo, zKeskiarvo]=taulukko.reduce.. jne. Liekö mahdollista?

//---
const piste1 = { x: 1, y: 2, z: 3 }
const piste2 = { x: 4, y: 5, z: 6 }
const piste3 = { x: 7, y: 8, z: 9 }
const taulukko = [ piste1, piste2, piste3 ]

const xKeskiarvo = taulukko.reduce((summa, { x }) => summa x, 0) / taulukko.length
const yKeskiarvo = taulukko.reduce((summa, { y }) => summa y, 0) / taulukko.length
const zKeskiarvo = taulukko.reduce((summa, { z }) => summa z, 0) / taulukko.length

console.log( { xKeskiarvo, yKeskiarvo, zKeskiarvo } )

// tulostaa: { xKeskiarvo: 4, yKeskiarvo: 5, zKeskiarvo: 6 }

4

141

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Miten koodaan saimaan peräreijän!

    • Anonyymi

      Sainkin sen toteutettua, mutta tuli aika karmean näköinen lauseke ja piti vielä mappiakin käyttää.

      const [ xKeskiarvo, yKeskiarvo, zKeskiarvo ] =
      taulukko.reduce(([ sx, sy, sz ], { x, y, z }) =>
      [ sx x, sy y, sz z ], [ 0, 0, 0 ]).map((k) => k / taulukko.length)

    • Anonyymi

      Voisi tehdä myös niin, että ensin tekee funktion, joka ottaa attribuutin nimen ja palauttaa funktion, joka laskee keskiarvon taulukon olioista sen attribuutin suhteen. Sitten mäppää halutut attribuuttien nimet tämän funktion avulla keskiarvoiksi.

      const f = (attr) => (arr) => arr.reduce((acc, x)=>acc x[attr], 0)/arr.length;
      ['x', 'y', 'z'].map(attr=>f(attr)(taulukko));

      • Anonyymi

        Hyvä, tämä näyttää paljon tyylikkäämmältä ratkaisulta.


    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Ruotsalaisuuden Päivän virallinen liputuspäivä poistettava VÄLITTÖMÄSTI!

      Suomen valtion ja suomalaisuuden kannalta ei ole minkäänlaisia perusteita liputtaa virallisesti ruotsalaisuuden päivää,
      Maailman menoa
      105
      5731
    2. Mikaela Nylander: Jos pakkoruotsi poistetaan, niin ruotsin kielen asema romahtaa

      (Nylander on vanha RKP:nen) Mutta niin heikossa vedossa muumiruotsi siis on Suomessa, että vain tekohengityksellä se pys
      Maailman menoa
      65
      2572
    3. Nainen aion pilata elämäsi täysin, opetus sulle, että pelasit väärän ihmisen sydämellä.

      Empatiani sua kohtaan katosi siinä kohtaan, kun teit tietoisen valinnan leikkiä mun sydämellä. Luulet olevas joku älykäs
      Ikävä
      241
      1585
    4. Kaivattusi nimi vol.3

      Kaipaajankin nimi olisi kiva. 🥰
      Ikävä
      94
      1380
    5. Alkanut tuntua siltä

      Että taisi olla kusetusta koko homma alusta saakka.
      Ikävä
      124
      1097
    6. 6 vkoa kulunut ilman sua

      …ihme että olen vielä hengissä. 😔 Kyynelillä pessyt lattioita. Rakastan ja odotan sua ikuisesti❤️Projekti jäi kesken jo
      Ikävä
      8
      901
    7. Viestisi kaipaamallesi ihmiselle

      Mitä ajattelet tilanteestanne tänään?
      Ikävä
      65
      882
    8. Nii, mites ne

      Hampaat??
      Ikävä
      66
      857
    9. Joululahja/Jouluntoivotus

      Millainen kaivatulle
      Ikävä
      75
      798
    10. Salailu jatkuu, poliisi tutkii

      Nykyään Pienimäki toimii Ylitornion kaupunginjohtajana. HS tavoitti hänet puhelimitse. Pienimäki korosti, ettei ole enää
      Ähtäri
      17
      741
    Aihe