0
votes

Comment accéder à la clé dans un objet imbriqué

const userMap = {};
users.forEach(user => {
  userMap[user._id] = user;
});

userMap.forEach((obj) => {
      keys = Object.keys(obj);
      keys.forEach((key) => {
        console.log(obj[key].email);

      });

3 commentaires

est usermap l'objet lui-même?


Pouvez-vous expliquer plus sur votre objet?


Est-ce un Carte < / a> objet?


8 Réponses :


1
votes

Utilisez pour ... dans code> pour itérer toutes les touches de l'objet. Parce que foreach code> est une méthode de tableau et usermap code> est un objet afin qu'il ne puisse pas utiliser la méthode.

for (const id in userMap) {
  console.log(userMap[id].email);
}


0 commentaires

2
votes

La raison pour laquelle ce qui suit ne fonctionne pas est parce que usermap code> est un objet (vous ne fermez pas non plus votre extérieur code> boucle code>, qui sera une syntaxe ERREUR):

const obj = {"5def224170a3ec0d90dbb89a": { "_id": "5def224170a3ec0d90dbb89a", "username": "dhruv1999", "fullname": "dhruv parmar", "email": "dhruv@gmail.com", "phone": "7045691556", "password": "$2a$10$UOk8E4fbkkZvSRSzQqWK4eyJ2Z.qtL4D38thfhzkxJ1pSxSFn5fna", "__v": 0 }, "5def2747d135311a747a9660": { "_id": "5def2747d135311a747a9660", "username": "dhruv1998", "fullname": "parmar", "email": "dhruvkp@gmail.com", "phone": "704591556", "password": "$2a$10$px5SK.OpP7i2Ryvg.ko/OeIbuq9XDT3luTrIBloNFCTiImUJC1BIm", "__v": 0 } }

const res = Object.values(obj).map(({email}) => email);
console.log(res);
console.log(res.join(', ')); // use `.join()` for string output


0 commentaires

-1
votes

Utilisez ce code =>

  var data = {
    "5def224170a3ec0d90dbb89a": {
        "_id": "5def224170a3ec0d90dbb89a",
        "username": "dhruv1999",
        "fullname": "dhruv parmar",
        "email": "dhruv@gmail.com",
        "phone": "7045691556",
        "password": "$2a$10$UOk8E4fbkkZvSRSzQqWK4eyJ2Z.qtL4D38thfhzkxJ1pSxSFn5fna",
        "__v": 0
    },
    "5def2747d135311a747a9660": {
        "_id": "5def2747d135311a747a9660",
        "username": "dhruv1998",
        "fullname": "parmar",
        "email": "dhruvkp@gmail.com",
        "phone": "704591556",
        "password": "$2a$10$px5SK.OpP7i2Ryvg.ko/OeIbuq9XDT3luTrIBloNFCTiImUJC1BIm",
        "__v": 0
    }
}


let allEmails = '';

Object.keys(data).map((item) => {

    allEmails = allEmails + data.item.email + ','

})
console.log(allEmails) // here you will get all emails 


4 commentaires

Je pense que vous voulez utiliser objet.values ​​(données) au lieu de objet.keys (données)


Il devrait ressembler à ce laisser allemails = objet.values ​​(données) .map (item => élément.email) .join (','); console.log (allemails);


Vous avez eu tort car l'objet.values ​​(données) renvoie une matrice de clés et je souhaite que pour la boucle d'objet.values ​​(données) renvoie des valeurs mais je n'en ai pas besoin.


@Rahulgupta no, qoomon est correct, item.email.email ne donne aucun sens si élément est la clé parce que ce sera juste un String, et aucune propriété .Email existe sur une chaîne. Il est logique que c'est la valeur comme ce serait l'objet, où .email accède à la propriété de messagerie. Aussi actuellement, vous utilisez .map () sans utiliser sa valeur de retour. .map () n'est pas destiné à être utilisé de cette façon. Au lieu de cela, vous pouvez utiliser .foreseach () si tout ce que vous avez l'intention de faire est itération et causant des effets secondaires.




0
votes

Utilisation pour ... en boucle xxx


0 commentaires


1
votes

En supposant que le nom de notre objet est code> objet code>.

let object={
  "5def224170a3ec0d90dbb89a": {
    "_id": "5def224170a3ec0d90dbb89a",
    "username": "dhruv1999",
    "fullname": "dhruv parmar",
    "email": "dhruv@gmail.com",
    "phone": "7045691556",
    "password": "$2a$10$UOk8E4fbkkZvSRSzQqWK4eyJ2Z.qtL4D38thfhzkxJ1pSxSFn5fna",
    "__v": 0
  },
  "5def2747d135311a747a9660": {
    "_id": "5def2747d135311a747a9660",
    "username": "dhruv1998",
    "fullname": "parmar",
    "email": "dhruvkp@gmail.com",
    "phone": "704591556",
    "password": "$2a$10$px5SK.OpP7i2Ryvg.ko/OeIbuq9XDT3luTrIBloNFCTiImUJC1BIm",
    "__v": 0
  }
}

for(let obj in object){
  console.log(object[obj].email)
}


0 commentaires

0
votes

Un exemple de travail:

let data = {
  "5def224170a3ec0d90dbb89a": {
    _id: "5def224170a3ec0d90dbb89a",
    username: "dhruv1999",
    fullname: "dhruv parmar",
    email: "dhruv@gmail.com",
    phone: "7045691556",
    password: "$2a$10$UOk8E4fbkkZvSRSzQqWK4eyJ2Z.qtL4D38thfhzkxJ1pSxSFn5fna",
    __v: 0
  },
  "5def2747d135311a747a9660": {
    _id: "5def2747d135311a747a9660",
    username: "dhruv1998",
    fullname: "parmar",
    email: "dhruvkp@gmail.com",
    phone: "704591556",
    password: "$2a$10$px5SK.OpP7i2Ryvg.ko/OeIbuq9XDT3luTrIBloNFCTiImUJC1BIm",
    __v: 0
  }
};

   

Object.keys(data).forEach(item => {
  console.log(data[item].email);  //you can access email here.
});
   


0 commentaires