J'ai un objet à travers lequel je tente de parcourir en utilisant for..in. Mais cela me donne "0" comme valeurs au lieu des clés d'objet telles que piidata, emplacement, niveau de risque, etc.

var srcObj = [{
    location: "34",
    piidata: "sdafa",
    risklevel: "Medium"
}]

for (var prop in srcObj) {
                console.log(prop);            
            }

object

0
neelmeg 7 mars 2016 à 19:08

6 réponses

Meilleure réponse

srcObj est un tableau, comme en témoigne le []. À l'intérieur, il y a un objet à l'index 0.

3
deceze 7 mars 2016 à 16:10

Tout ce que vous devez faire

for (var prop in srcObj) {
  console.log(srcObj[prop]);
  console.log(srcObj[prop]["risklevel"]); // --> Medium

  var keyNames = Object.keys(srcObj[prop]); // --> return keyNames as array
  console.log(keyNames[0], keyNames[1]); // --> location   piidata
}
0
Mayki Nayki 7 mars 2016 à 16:33

Votre srcObj est en fait un tableau (identifié par les littéraux [ et ]) qui contient un objet comme seul élément.

Pour accéder aux paramètres de l'objet unique à l'intérieur du tableau, utilisez la syntaxe suivante:

for( var prop in srcObj[0] ) 
{
    console.log(prop);            
}

jsFiddle Demo

-1
BenM 7 mars 2016 à 16:12

Votre srcObj est un tableau. Vous pouvez voir par les crochets [] qu'il est enfermé. Mais Chrome dit Object. Droite. Les types Javascript sont un peu étranges. Consultez cette page.

Si vous souhaitez accéder aux clés / valeurs de l'objet, vous pouvez spécifier l'index de l'objet dans le tableau. srcObj[0] dans ce cas. Si vous voulez retirer l'objet du tableau et le traiter comme un objet, vous pouvez faire quelque chose comme ceci:

var trueObject = srcObj.shift()

Qui supprime et retourne le premier élément d'un tableau et l'affecte à votre variable.

0
rswerve 7 mars 2016 à 16:45

Pendant que vous bouclez l'objet javascript, il retourne l'index / la clé de l'objet

Donc si vous essayez d'obtenir la valeur de chaque clé, essayez.

for( var prop in srcObj ) 
{
    console.log(srcObj[prop]);            
}

Si vous essayez d'obtenir chaque nom de clé, essayez celui-ci

for( var prop in srcObj ) 
{
    console.log(prop);            
}
0
Satish Kumar sonker 7 mars 2016 à 16:19

Votre "srcObj" est un tableau. Ceci est indiqué par l'habillage [ ... ]. Si vous console.log srcObj[0], vous devez obtenir l'objet lui-même.

1
Joseph Marikle 7 mars 2016 à 16:10