J'essaie d'itérer une gamme d'objets à l'aide d'une boucle pour / en boucle pour enregistrer certaines des propriétés de chaque objet à la console Chrome Dev, mais je continue à obtenir des valeurs nulles. J'ai ensuite décidé d'utiliser une boucle régulière et j'ai reçu les valeurs que j'attendais dans la console de dev.
Pourriez-moi m'expliquer pourquoi le pour / in me donne des valeurs nulles lorsque le régulier des boucles me donne l'attendu ( Valeurs non nuls)? P>
Ceci est le code: p>
watch: {
events() {
console.log(this.events)
for(let event in this.events) {
console.log(`Lat: ${event.latitude}, Lng: ${event.longitude}`)
}
for(let i = 0; i < this.events.length; i++) {
console.log(`Lat: ${this.events[i].latitude}, Lng: ${this.events[i].longitude}`)
}
}
}
4 Réponses :
Veuillez lire la documentation de pour..in. Cela retournera les propriétés énumérables. qui dans le cas des matrices est des index de tableau. Vous devez donc toujours faire En outre, la commande n'est pas garantie ANS est purement dépendante de la mise en œuvre. Donc, vous devez être prudent. Plus sur ceci à ceci.vents [index] code> pour obtenir l'événement réel. p>
pour / dans les index de retour en tant que chaîne si vous utilisez des tableaux, Reportez-vous ici: HTTPS: // Développeur .mozilla.org / fr-US / DOCS / Web / JavaScript / Référence / Déclarations / Pour ... In P>
Pour / in Iterate sur chaque élément d'une matrice, sans ordre défini, mais l'itérateur n'est toujours qu'un indice de tableau. Vous voulez probablement utiliser pour / de. N'oubliez pas: p> var events = [ { latitude: "10", longitude: "100" }
, { latitude: "11", longitude: "101" }
];
console.log(events);
console.log('for/in:');
for(let event in events) {
console.log(`Lat: ${events[event].latitude}, Lng: ${events[event].longitude}`)
}
console.log('for/of:');
for(event of events) {
console.log(`Lat: ${event.latitude}, Lng: ${event.longitude}`);
}
pour ... dans code> est pour itération des propriétés d'objet , pas pour itération des tableaux. Utilisez pour ... de code> à la place:
pour ... dans code> est destiné à itération des propriétés d'objet, pas pour itération des tableaux. Utilisezpour ... de code> à la place.