Mul on JavaScript objekt nagu järgmine:
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
Nüüd tahan ma loopida läbi kõik p
elemendid (p1
, p2
, p3
...) Ja saada nende võtmed ja väärtused. Kuidas ma saan seda teha?
Vajadusel võin ma JavaScript-objekti muuta. Minu lõppeesmärk on loopida läbi mõned võti-väärtus paarid ja kui võimalik, tahan vältida eval
kasutamist.
Võite kasutada for-in
silmust, nagu teised on näidanud. Kuid sa pead ka veenduma, et võti, mille sa saad, on objekti tegelik omadus ja ei tule prototüübist.
See on katkend:
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
for (var key in p) {
if (p.hasOwnProperty(key)) {
console.log(key + " -> " + p[key]);
}
}
For-of koos Object.keys() alternatiiviga:
var p = {
0: "value1",
"b": "value2",
key: "value3"
};
for (var key of Object.keys(p)) {
console.log(key + " -> " + p[key])
}
Pange tähele for-of
kasutamist for-in
asemel, kui seda ei kasutata, siis tagastab see nimetud omaduste puhul määratlemata ja Object.keys() tagab ainult objekti'enda omaduste kasutamise ilma kogu prototüüp-keti omadusteta
for(key in p) {
alert( p[key] );
}
Märkus: seda saab teha üle massiivi, kuid te'itereerite ka length
ja teiste omaduste üle.