58 votes

Parcourir les propriétés de l'objet Javascript

Je veux traverser la propriété de l'objet JavaScript

 var obj =
{
    a: 'value1',
    b: 'value2',
    c: 'value3',
    d: 'value4'
};

for (var prop in obj) {
    prop = 'xxx';
}

Mais le code ci-dessus ne fonctionne pas. Pouvez-vous m'aider comment faire?

91voto

Christian Tellnes Points 2000

Vous devez vérifier que la propriété appartient à l'objet et non à un prototype.

 for (var prop in obj) {
    if (obj.hasOwnProperty(prop)) {
        obj[prop] = 'xxx';
    }
}

83voto

Alin Purcaru Points 21373

prop référencera le nom de la propriété, pas sa valeur.

 for (var prop in obj) {
    obj[prop] = 'xxx';
}

Construire la documentation.

Vous pouvez également vérifier si la propriété appartient à l'objet en utilisant hasOwnProperty . Il peut arriver que quelqu'un ajoute des propriétés au prototype et celles-ci sont également itérées de for ... in .

24voto

magiccrafter Points 81

Voici comment cela se fait en utilisant l'ES5 - Object.keys() :

 Object.keys(obj).forEach(function(key, idx) {
   ...
}); 

http://jsfiddle.net/magiccrafter/bvwenh5d/

Documents de Mozilla : lien

5voto

Snedden27 Points 879

Utilisation d'ecmascript2017 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries

 const object1 = {
  a: 'somestring',
  b: 42
};

for (let [key, value] of Object.entries(object1)) {
  console.log(`${key}: ${value}`);
}

2voto

for(let i = 0; i < Object.entries(dog).length; i++){
  this.temp.push(Object.entries(dog)[i]);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X