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 }
Objektitaulukon keskiarvot keyn perusteella
4
73
Vastaukset
- 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
Kalle Palander kertoi fantasioivansa siitä, kuinka Kiira Korpi naisi häntä sträppärillä ahteriin
Sai potkut Yleltä. https://yle.fi/a/74-201400003264771- 162256
- 1942099
- 1071486
- 811407
- 741002
Nyt mielipiteitä kehiin?
Niin ,onko arvon kuhmolaiset teidän mielestänne kaupungin hommissa turhia työpaikkoja/työntekijöitä? Mielipiteitä tu57987IS: Paljastus - Tästä syystä Marika jätti Diilin kesken -Tilittää: "Jäi vähän karvas maku, koska..."
Diilissä lähti yllättäen yksi kisaaja. Voi harmi, leikki loppui liian varhain… Diilissä Jaajo Linnonmaa etsii vetäjää Ka2929Martina miehensä kanssa Malediiveilla.
Miksi täällä puhutaan erosta? Lensivät Dubaista Malediiveilĺe.119844Ei lumous lopu koskaan
Kerran kun tietyt sielut yhdistyvät kunnolla, ei irti pääse koskaan. Vaikka kuinka etsit muista ihmisistä sitä jotain tu59776