Kaip sumažinti objektų masyvą, kad susumuotų jų savybes?

Kaip Sumazinti Objektu Masyva Kad Susumuotu Ju Savybes



Dirbant su „JavaScript“ objektų masyvais, dažnai reikia atlikti jų savybių skaičiavimus. Pavyzdžiui, rasti konkrečios savybės sumą visuose masyvo objektuose yra įprasta užduotis. „ sumažinti () “ metodas yra naudingas įrankis tokiems skaičiavimams atlikti, nes jis leidžia rinkti vertę iteratyviai pagal masyvo narius.

Šioje pamokoje bus aprašyta procedūra, kaip iškviesti redukcijos () metodą objektų masyve, siekiant rasti jų savybių sumą.

Kaip sumažinti objektų masyvą, kad susumuotų jų savybes?

Norėdami susumuoti objektų masyvo savybes, perduokite atgalinio ryšio funkciją į „ sumažinti () “ metodas. Šis atgalinio skambinimo metodas priima du argumentus: „ akumuliatorius ' ir ' dabartinė vertė “. „Dabartinė vertė“ reiškia šiuo metu apdorojamą elementą, o „akumuliatorius“ nurodo bendrą sumos sumą. Norėdami apskaičiuoti nurodytų objektų savybių sumą, atgalinio skambučio funkcijoje naudokite taško (.) žymėjimą arba skliaustą ([ ]).







Sintaksė
Pateikta sintaksė naudojama „reduce()“ metodui:



masyvas. sumažinti ( atgalinis skambutisFunc , pradinė vertė )

1 pavyzdys
Sukurkite objektų masyvą pavadinimu ' inventorius “, kuriame yra keturi objektai su produktų pavadinimais ir atitinkamais kiekiais:



buvo inventorius = [
{ produkto pavadinimas : 'duona' , kiekis : 30 } ,
{ produkto pavadinimas : 'Sviestas' , kiekis : Keturi. Penki } ,
{ produkto pavadinimas : 'sultys' , kiekis : 58 } ,
{ produkto pavadinimas : 'Avižos' , kiekis : 40 }
] ;

Iškvieskite mažinimo () metodą su atgalinio ryšio funkcija, kad gautumėte objekto nuosavybės sumą, vadinamą ' kiekis “:





buvo totalProductsQuantity = inventorius. sumažinti ( funkcija ( ankstesnisVal , srovėVal ) {
grąžinti ankstesnisVal + srovėVal. kiekis ;
} , 0 ) ;

Galiausiai konsolėje atspausdinkite sumažintą kiekio sumos reikšmę:

konsolė. žurnalas ( „Bendras produktų kiekis:“ , totalProductsQuantity ) ;

Galima pastebėti, kad sėkmingai apskaičiuota objektų savybių suma:



2 pavyzdys
Taip pat galite apibrėžti funkciją, skirtą nurodyto objekto savybių sumai apskaičiuoti. Pirmiausia apibrėžsime objektą pavadinimu „studentas“ su atributais / ypatybėmis, pavadintomis „ tema ' ir ' ženklų “:

buvo studentas = [
{ tema : 'matematika' , ženklų : 89 } ,
{ tema : 'geografija' , ženklų : 72 } ,
{ tema : 'mokslas' , ženklų : 65 } ,
{ tema : 'Anglų' , ženklų : 75 }
] ;

Apibrėžkite funkciją pavadinimu ' skaičiavimas () “, o norėdami pasiekti objekto ypatybę, naudokite skliaustą ([ ]):

funkcija skaičiavimas ( obj , nuosavybė ) {
buvo apskaičiuoti = obj. sumažinti ( funkcija ( ankstesnisVal , srovėVal ) {
grąžinti ankstesnisVal + srovėVal [ nuosavybė ] ;
} , 0 ) ;
konsolė. žurnalas ( 'Iš viso:' , apskaičiuoti ) ;
}

Dabar iškvieskite funkciją perduodant objektą ' studentas 'ir nuosavybė' ženklų “, kad būtų nustatyta visų dalykų surinktų balų suma:

skaičiavimas ( studentas , 'ženklai' ) ;

Išvestis

Tai viskas apie tai, kaip iškviesti mažinimo () metodą objektų masyve, kad būtų galima apskaičiuoti jų savybių sumą.

Išvada

Perduokite atgalinio skambinimo funkciją į „ sumažinti () “ metodas, skirtas objektų masyvo savybių sumai apskaičiuoti. Norėdami pasiekti objekto savybes, naudokite tašką „. žymėjimas arba skliaustas „[ ]“ žymėjimas atgalinio skambinimo funkcijoje. Šiame vadove buvo aprašyta procedūra, kaip iškviesti redukcinį() metodą objektų masyve, norint rasti jų savybių sumą.