logo

Kuinka iteroida JavaScript-objektin yli?

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



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ö