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

147

    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. Hyvää syntymäpäivää Sanna 40 vee!!!!

      ᕼᗩᑭᑭY ᗷIᖇTᕼᗞᗩY Sister ❣️🥰 🎉🎂✨🍰🥳 🥳🎂🥂 🎉🎊🎁🎈🎂
      Maailman menoa
      141
      5948
    2. Mikä on vaikeinta siinä, että menetti yhteyden kaivattuun, jota vielä ajattelee?

      Mikä jäi kaihertamaan? Jos jokin olisi voinut mennä toisin, mitä se olisi ollut? Mitä olisit toivonut vielä ehtiväsi san
      Ikävä
      427
      2918
    3. Kerro kaivattusi etunimi

      Miehille..
      Ikävä
      148
      2857
    4. Onhan tää tyhmää ajatella sua kun tuskin ees muistat mua

      Hyvää yötä sinne jonnekin. 💔
      Ikävä
      26
      2284
    5. Persut rahoittavat velkarahalla rikkaiden ökyelämää

      Minkä vuoksi persut eivät leikkaa rikkailta, joilla on maksukykyä? Tuskinpa tuo persujen käytös saa Suomen kansalta hyv
      Maailman menoa
      20
      2161
    6. Kerro kaivattusi etunimi

      Naisille
      Ikävä
      76
      1441
    7. Veronmaksajat kustantavat yrittäjien eläkkeitä jo yli 500 miljoonalla

      Suomalaista yrittäjää ei kommunistista erota. Aktiivisen "yrittämisen" maksattaa yritystukina yhteiskunnalla, ja vieläpä
      Yrittäjyys
      13
      1182
    8. Kun ei numeroa

      niin en edes voi viestittää, et suunnitelmiin tuli muutos. Ikävä on, ja kasvaa vaan🤍
      Ikävä
      10
      1112
    9. Mikä musta tekee

      Oikein haluttavan sun silmissä? Mä en ymmärrä. Parasta aika mennyt ko ohi 😃
      Ikävä
      53
      1030
    10. Millainen on

      Ihanne kumppani
      Ikävä
      87
      972
    Aihe