0
votes

Pourquoi ma boucle pour / en boucle me donne-t-elle des résultats nuls, mais ma boucle normale n'est-elle pas (images)?

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}`)
        }
    }
}


1 commentaires

pour ... dans est destiné à itération des propriétés d'objet, pas pour itération des tableaux. Utilisez pour ... de à la place.


4 Réponses :


0
votes

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 ceci.vents [index] pour obtenir l'événement réel.

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 à https://developer.mozilla.org/en-us/docs/web/javascript/reference/statifs/for...in#array_iteration_and_for...in


0 commentaires

0
votes

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


0 commentaires

0
votes

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: i fort> n est i strong> ndex, o fort> F est o fort> bject

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}`);
}


0 commentaires

1
votes

pour ... dans est pour itération des propriétés d'objet , pas pour itération des tableaux. Utilisez pour ... de à la place: xxx


0 commentaires