Jeg har et JavaScript-objekt som følgende:
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
Nu ønsker jeg at gennemløbe alle p
-elementer (p1
, p2
, p3
...) og få deres nøgler og værdier. Hvordan kan jeg gøre det?
Jeg kan ændre JavaScript-objektet, hvis det er nødvendigt. Mit endelige mål er at gennemløbe nogle nøgle-værdipar, og hvis det er muligt, vil jeg gerne undgå at bruge eval
.
Du kan bruge for-in
-loop'en som vist af andre. Du skal dog også sikre dig, at den nøgle, du får, er en faktisk egenskab ved et objekt og ikke kommer fra prototypen.
Her er udklippet:
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
for (var key in p) {
if (p.hasOwnProperty(key)) {
console.log(key + " -> " + p[key]);
}
}
For-of med Object.keys() alternativ:
var p = {
0: "value1",
"b": "value2",
key: "value3"
};
for (var key of Object.keys(p)) {
console.log(key + " -> " + p[key])
}
Bemærk brugen af for-of
i stedet for for-in
, hvis det ikke bruges, vil det returnere udefineret på navngivne egenskaber, og Object.keys() sikrer kun brugen af objektets egne egenskaber uden hele prototype-kædens egenskaber
for(key in p) {
alert( p[key] );
}
Bemærk: du kan gøre dette over arrays, men du vil også iterere over length
og andre egenskaber.