Pārlūkošana, izmantojot JavaScript objektu rekvizītus

Pārlūkošana, izmantojot JavaScript objektu rekvizītus
JavaScript

JavaScript objektu iterācijas izpēte

JavaScript objekta rekvizītu apskate ir izplatīts uzdevums, ar kuru saskaras izstrādātāji. Neatkarīgi no tā, vai jums ir jāpiekļūst atslēgām, vērtībām vai abiem, ir ļoti svarīgi saprast, kā efektīvi uzskaitīt objekta rekvizītus.

Šajā rakstā mēs izpētīsim dažādas metodes, kā atkārtot objekta elementus. Beigās jūs būsiet aprīkots ar zināšanām, lai viegli apstrādātu objektu uzskaitīšanu, nodrošinot, ka jūsu JavaScript kods ir gan efektīvs, gan lasāms.

Komanda Apraksts
for...in Pārvietojas cauri objekta īpašībām, atkārtojot visas uzskaitāmās īpašības.
hasOwnProperty() Pārbauda, ​​vai objektam ir norādītais īpašums kā tiešs īpašums, kas nav mantots prototipa ķēdē.
Object.entries() Atgriež paša dotā objekta uzskaitāmo rekvizītu [atslēga, vērtība] pāru masīvu.
Object.keys() Atgriež paša dotā objekta uzskaitāmo rekvizītu nosaukumu masīvu.
Object.values() Atgriež paša dotā objekta uzskaitāmo rekvizītu vērtību masīvu.
forEach() Katram masīva elementam vienu reizi izpilda sniegto funkciju.

Izpratne par JavaScript objektu iterācijas metodēm

The for...in cilpa ir pamata JavaScript konstrukcija, ko izmanto, lai atkārtotu objekta neskaitāmās īpašības. Skripta piemērā for...in tiek izmantots, lai izietu cauri katrai objekta īpašībai p. Cikla ietvaros hasOwnProperty() tiek izmantots, lai nodrošinātu, ka īpašums ir tiešs objekta īpašums, nevis mantots no tā prototipa ķēdes. Tas ir ļoti svarīgi, lai izvairītos no neparedzētiem rezultātiem, kad objekts pārmanto īpašības. Pēc tam cilpa reģistrē katra īpašuma atslēgu un vērtību, izmantojot console.log, efektīvi uzskaitot objekta īpašības.

Vēl viena demonstrētā metode ir izmantošana Object.entries(), kas atgriež paša objekta uzskaitāmo rekvizītu [atslēga, vērtība] pāru masīvu. Pēc tam šis masīvs tiek atkārtots, izmantojot forEach(), ērta masīva metode, kas katram masīva elementam vienu reizi izpilda sniegto funkciju. Šī metode vienkāršo kodu, katrā iterācijā tieši piekļūstot gan atslēgai, gan vērtībai, padarot uzskaites procesu vienkāršu un lasāmu. The Object.keys() metode darbojas līdzīgi, bet atgriež tikai atslēgas, kuras pēc tam tiek izmantotas, lai piekļūtu attiecīgajām vērtībām forEach() cilpa.

Papildus, Object.values() ir vēl viena noderīga metode, kas atgriež objekta vērtību masīvu. Atkārtojot šo masīvu ar forEach(), mēs varam tieši piekļūt katrai vērtībai un reģistrēt to. Šīs metodes -for...in, Object.entries(), Object.keys(), un Object.values()— ir spēcīgi rīki objektu apstrādei JavaScript. Tie nodrošina elastību, piekļūstot objekta rekvizītiem un ar tiem manipulējot, apmierinot dažādas vajadzības un preferences. Katrai metodei ir savas priekšrocības, un to izpratne ļauj izstrādātājiem izvēlēties savam konkrētajam lietošanas gadījumam atbilstošāko, nodrošinot efektīvu un iedarbīgu koda izpildi.

Objekta rekvizītu atkārtošana, izmantojot for...in Loop

JavaScript — for...in Loop

var p = {"p1":"value1","p2":"value2","p3":"value3"};
for (var key in p) {
  if (p.hasOwnProperty(key)) {
    console.log(key + " -> " + p[key]);
  }
}
// Output:
// p1 -> value1
// p2 -> value2
// p3 -> value3

Cilpas caur objektu atslēgām un vērtībām, izmantojot Object.entries()

JavaScript — Object.entries()

var p = {"p1":"value1","p2":"value2","p3":"value3"};
Object.entries(p).forEach(([key, value]) => {
  console.log(key + " -> " + value);
});
// Output:
// p1 -> value1
// p2 -> value2
// p3 -> value3

Objekta rekvizītu uzskaitīšana, izmantojot Object.keys()

JavaScript — Object.keys()

var p = {"p1":"value1","p2":"value2","p3":"value3"};
Object.keys(p).forEach(key => {
  console.log(key + " -> " + p[key]);
});
// Output:
// p1 -> value1
// p2 -> value2
// p3 -> value3

Atkārtošana, izmantojot objektu vērtības, izmantojot Object.values()

JavaScript — Object.values()

var p = {"p1":"value1","p2":"value2","p3":"value3"};
Object.values(p).forEach(value => {
  console.log(value);
});
// Output:
// value1
// value2
// value3

Iedziļināties JavaScript objektu iterācijā

Vēl viens spēcīgs veids, kā apstrādāt objektu iterāciju JavaScript, ir izmantot Map objektu. Atšķirībā no parastajiem objektiem, Map objekti ļauj saglabāt atslēgu-vērtību pārus, kur atslēgas var būt jebkura veida datu. Šī elastība var būt īpaši noderīga gadījumos, kad sarežģītas atslēgas, piemēram, objekti vai funkcijas, ir jāsaista ar vērtībām. Jūs varat viegli atkārtot a Map izmantojot tās iebūvētās metodes, piemēram Map.prototype.forEach(), Map.prototype.keys(), un Map.prototype.values(), nodrošinot konsekventu un paredzamu iterācijas secību, kas ir ievietošanas secība.

Papildus Map, piedāvā arī JavaScript WeakMap, kas ir līdzīgs, bet ar atslēgām, kurām ir vājas atsauces, kas nozīmē, ka tās neaizkavē atkritumu savākšanu, ja uz objektu nav citu atsauču. Tas var palīdzēt efektīvāk pārvaldīt atmiņu noteiktās lietojumprogrammās. Abi Map un WeakMap nodrošināt stabilu metožu kopumu atslēgu un vērtību pāru kolekciju pārvaldībai. Lai gan tie tieši neaizstāj vienkāršus objektus, tie piedāvā unikālas priekšrocības elastības un atmiņas pārvaldības ziņā, ko var izmantot sarežģītākās datu struktūrās un algoritmos.

Bieži uzdotie jautājumi par JavaScript objektu iterāciju

  1. Kā es varu atkārtot objekta īpašības JavaScript?
  2. Tu vari izmantot for...in, Object.keys(), Object.values(), vai Object.entries() lai atkārtotu objekta īpašības.
  3. Kāda ir atšķirība starp for...in un Object.keys()?
  4. for...in atkārto visas neskaitāmās īpašības, tostarp tās, kas mantotas prototipa ķēdē, kamēr Object.keys() atgriež tikai paša objekta uzskaitāmās īpašības.
  5. Object.entries() strādāt?
  6. Object.entries() atgriež paša objekta uzskaitāmo rekvizītu [atslēga, vērtība] pāru masīvu, ko var atkārtot ar forEach cilpa.
  7. Vai es varu izmantot forEach tieši uz objekta?
  8. Nē, forEach ir masīvu metode, taču varat to izmantot atgrieztajos masīvos Object.keys(), Object.values(), vai Object.entries().
  9. Kas ir Map un WeakMap?
  10. Map ļauj izmantot jebkura veida atslēgas un uztur ievietošanas secību. WeakMap ir atslēgas, kurām ir vāja atsauce un kuras var savākt atkritumus.
  11. Map.prototype.forEach() un Array.prototype.forEach() atšķiras?
  12. Viņi darbojas līdzīgi, bet Map.prototype.forEach() atkārtojas pār kartes ierakstiem (atslēgas vērtību pāriem), turpretim Array.prototype.forEach() atkārtojas masīva elementos.
  13. Kāpēc izmantot Object.values()?
  14. Izmantot Object.values() kad jums ir nepieciešams tieši atkārtot objekta rekvizītu vērtības.

Pēdējās domas par JavaScript objektu iterāciju

Objektu iterācijas apgūšana JavaScript ir būtiska efektīvai programmēšanai. Izmantojot tādas metodes kā for...in, Object.keys(), Object.values(), un Object.entries(), izstrādātāji var efektīvi piekļūt objekta rekvizītiem un ar tiem manipulēt. Šīs metodes nodrošina elastību, nodrošinot, ka jūsu kods paliek tīrs, efektīvs un viegli saprotams. Neatkarīgi no tā, vai jums ir darīšana ar vienkāršiem vai sarežģītiem objektiem, šo metožu pārzināšana uzlabos jūsu kodēšanas prasmes un optimizēs JavaScript lietojumprogrammas.