Comment puis-je obtenir le tableau «adresse» dans l'objet de réponse de demande ci-dessous?
{ "title": "MRS.", "name": "Aluno", "lastName": "3", "birthday": "2019-08-31", "address": [ { "addressName": "rua 2", "zipCode": "13901264", "city": "amparo", "state": "sp", "country": "brasil" }, { "addressName": "rua 2", "zipCode": "13901264", "city": "amparo", "state": "sp", "country": "brasil" }, ] }
Si j'enregistre cet objet dans un état appelé customer et imprime console.log (customer.address) cela fonctionne bien et je peux voir les informations d'adresse, mais je ne peux pas utiliser les méthodes map ou forEach comme customer.address.forEach, je reçois une erreur :(
3 Réponses :
Vous pouvez utiliser des méthodes telles que map, reduce, filter, forEach
uniquement sur un Array
non sur un Object
.
l' address
clé a une valeur en tant object
, pour la lire, vous pouvez simplement utiliser
Object.values(customer.address).forEach((value) => { console.log(value); }) // OR Object.keys(customer.address).forEach((key) => { console.log(customer.address[key]); })
Si vous souhaitez parcourir les propriétés
console.log(customer.address.addressName) //street x console.log(customer.address.zipCode) //13901264
Pouvez-vous mettre à jour la question avec la réponse / sortie attendue?
J'ai demandé mal, je veux obtenir l'objet d'adresse à la place du tableau d'adresses haha
Bien, regardez la question. Je l'ai corrigé. Je veux obtenir le tableau d'adresses, désolé !!
La propriété ne lui address
pas un tableau, si vous avez besoin de le convertir en un tableau d'un élément, vous pouvez utiliser:
const valueAsArray = [response.address]
Object.keys(out.address).map(key => { console.log(out.address[key]); // etc ... })
l'
address
la propriété est un objet et non un tableau. C'est pourquoi les méthodes de tableau telles que forEach ne fonctionneront pas dessus,Object.values(customer.address)
vous donnera un tableau de valeurs sur lesquelles vous pouvez utiliserforEach
. De mêmeObject.keys
pour obtenir un tableau des clés etObject.entries
pour obtenir un tableau de paires[key, value]
J'ai demandé mal, je veux obtenir l' objet d' adresse à la place du tableau d' adresses haha
Parfois, l'itération d'un objet bien défini est une odeur de code. Vous pouvez utiliser les propriétés directement
console.log(customer.address.addressName, customer.address.city)
etc.Bien, regardez la question. Je l'ai corrigé. Je veux obtenir le tableau d'adresses, désolé !!
Quelle erreur obtenez vous? Pouvez-vous s'il vous plaît montrer plus de votre code, avec le code que vous avez maintenant, il devrait fonctionner. Vous essayez probablement d'accéder à l'
address
avant que lecustomer
n'ait été renseigné avec les donnéesj'essaye de faire quelque chose comme ça, uniquement pour accéder aux informations du tableau des réservations prntscr.com/vjrula
l'adresse dans le post-question est un exemple de ceci, de ce que je voudrais vraiment
Object.values(customer.reservations).forEach()
s'exécutera avant votre callback useEffect et.then()
, ce qui signifie quecustomer.reservations
sera vide / non défini.Comment puis-je y remédier?