Tässä artikkelissa opimme iteroimaan JavaScript-objektin yli. Iteroinnin aikana käyt läpi objektin ominaisuudet yksitellen, ja iterointimenetelmästä riippuen sinulla voi olla eri käyttöoikeus näihin ominaisuuksiin
On olemassa monia menetelmiä iteroida objektia, joita käsitellään alla:
Sisällysluettelo
- Käytetään for… in loop
- Object.entries()- ja map()-menetelmän käyttäminen
- ForEach()- ja object.keys()-metodin käyttö
- Käyttämällä Lodash _.forOwn() -menetelmää
Tapa 1: Käyttämällä for… silmukassa
Objektin ominaisuuksia voidaan iteroida käyttämällä for..in -silmukkaa. Tätä silmukkaa käytetään iteroitaessa kohteen kaikkia ei-symboleita iteroitavia ominaisuuksia. Jotkut objektit voivat sisältää ominaisuuksia, jotka voivat olla peritty niiden prototyypeistä. The hasOwnProperty() menetelmällä voidaan tarkistaa, kuuluuko ominaisuus itse objektille. Objektin jokaisen avaimen arvo löytyy käyttämällä avainta objektin indeksinä.
Syntaksi:
for (let key in exampleObj) { if (exampleObj.hasOwnProperty(key)) { value = exampleObj[key]; console.log(key, value); } }>Esimerkki: Tämä esimerkki esittää yllä selitetyn lähestymistavan toteutusta.
Javascript function iterateObject() { let exampleObj = { book: 'Sherlock Holmes', author: 'Arthur Conan Doyle', genre: 'Mystery' }; for (let key in exampleObj) { if (exampleObj.hasOwnProperty(key)) { value = exampleObj[key]; console.log(key, value); } } } iterateObject();> Lähtö
book Sherlock Holmes author Arthur Conan Doyle genre Mystery>
Tapa 2: Käyttämällä Object.entries() -metodi ja kartta() Menetelmä
The Object.entries() -metodi käytetään palauttamaan objektin omien numeroitavien merkkijonoavainparien taulukko. Palautettua taulukkoa käytetään kanssa kartta() menetelmä avaimen ja arvon erottamiseksi pareista. Avain ja arvot avain-arvo-parista voidaan poimia käyttämällä taulukkoparin ensimmäistä ja toista indeksiä. Ensimmäinen indeksi vastaa avainta ja toinen indeksi vastaa parin arvoa.
Syntaksi:
Object.entries(exampleObj).map(entry =>{ anna avain = syöttö[0]; anna arvo = merkintä[1]; console.log(avain, arvo); });>Esimerkki: Tämä esimerkki esittää yllä selitetyn lähestymistavan toteutusta.
Javascript function iterateObject() { let exampleObj = { book: 'Sherlock Holmes', author: 'Arthur Conan Doyle', genre: 'Mystery' }; Object.entries(exampleObj).map(entry =>{ anna avain = syöttö[0]; anna arvo = merkintä[1]; console.log(avain, arvo); }); } iterateObject();>>
Lähtö book Sherlock Holmes author Arthur Conan Doyle genre Mystery>
Tapa 3: Käyttö forEach()-menetelmää varten ja object.keys() -menetelmä
Object.keys() palauttaa objektin ja avainten joukonforEach()>on taulukkomenetelmä, jonka avulla voit iteroida jokaisen taulukon elementin yli.
Esimerkki: Tämä esimerkki esittää yllä selitetyn lähestymistavan toteutusta.
Javascript function iterateObject() { let exampleObj = { book: 'Sherlock Holmes', author: 'Arthur Conan Doyle', genre: 'Mystery' }; Object.keys(exampleObj).forEach(key =>{ const arvo = esimerkkiObj[avain]; console.log(`${key}: ${arvo}`); }); } iterateObject();>>
Lähtö Tapa 4: Käyttö Lodash _.forOwn() -menetelmä Tässä lähestymistavassa käytämme Lodash _.forOwn() -menetelmää, joka auttaa iteroimaan objektien läpi.
Esimerkki: Tämä esimerkki esittää yllä selitetyn lähestymistavan toteutusta.
Javascript // Defining Lodash variable const _ = require('lodash'); let users = { 'a': 1, 'b': 2, 'c': 3 }; _.forOwn(users, function (value, key) { console.log(key, '=', value); });> Lähtö:
Object.values()-metodi palauttaa joukon objektin omia numeroitavia ominaisuusarvoja. Yhdistämällä tämän forEach()-menetelmään voit toistaa jokaisen arvon. Jos haluat käyttää myös vastaavia avaimia, voit käyttää Object.keys()-metodia samanaikaisesti. Syntaksi:
Object.values(exampleObj).forEach((value, index) =>{ const key = Object.keys(exampleObj)[index]; console.log(avain, arvo); });> Esimerkki:
JavaScript function iterateObject() { let exampleObj = { book: 'Sherlock Holmes', author: 'Arthur Conan Doyle', genre: 'Mystery' }; Object.values(exampleObj).forEach((value, index) =>{ const key = Object.keys(exampleObj)[index]; console.log(avain, arvo); }); } iterateObject();>>
Lähtö