0
votes

Comment mapper sur un tableau de contacts pour produire un nouveau tableau avec des objets et des propriétés?

Je cherche à mapper sur un tableau pour créer un nouveau tableau avec les propriétés pertinentes sorties. J'ai accédé avec succès à mes contacts sur mon téléphone et que je souhaite appuyer sur les données dans une structure plus organisée. Comment mapper Over Warray dans pour accéder à la matrice en utilisant les premières valeurs pour les numéros de courrier électronique et de téléphone si elles sont présentes? Vous trouverez ci-dessous un exemple de réseau de contacts:

tableau dans xxx

J'aimerais retrouver avec ce qui suit: array out xxx

J'ai mappé sur la matrice pour créer une liste de contacts et que je sélectionne chacun de ceux que je veux le pousser dans l'état . Ma collation est ici pour référence: https://snack.expo.io/@fauslyfox110/testingreferrals

Ne cherche personne à faire ma collation pour moi, juste pour m'aider à passer à la partie de matrice pour aller de la matrice dans le tableau.

réponse qui a fonctionné xxx


1 commentaires

Quel est votre problème spécifique avec les données?


3 Réponses :


0
votes

Cela clarifie-t-il?

p>

let inputArray = [{name: 1}, {name: 2}]

let outputArray = inputArray.map(inputArrayItem => { return  {name: inputArrayItem.name}; });

console.log(outputArray );


0 commentaires

0
votes

Votre tableau dans ses erreurs de syntaxe. Je n'ai pas fait de carte mais je l'ai fait dans une boucle pour la boucle à la place, mais cela ressemble à ceci.

let arrayIn =   [
    {phoneNumbers:[
        '+3476859087',
        '+4567893214'
        ],
        lookupKey:"12345",
        company:"PHONE",firstName:"John",contactType:"person",name:"John Smith",id:"879",
        emails:[
            'johnSmith@gmail.com'
        ],
        lastName:"Smith",
    },
    {phoneNumbers:[
        '+3476859087',
        '+4567773214'
        ],
        lookupKey:"890744",
        company:"PHONE",firstName:"Carl",name:"Carl Johnson",id:"879",
        emails:[
            'cjohnsonh@gmail.com'
        ],
        lastName:"johnson",
    }
   ]

 let arrayOut = []

 for(let i = 0; i < arrayIn.length; i++){
        let contact = {
        name: arrayIn[i].name,
      phone: arrayIn[i].phoneNumbers[0],
      email: arrayIn[i].emails[0],
    }
    arrayOut.push(contact);
 }

 console.log(arrayOut);


0 commentaires

1
votes

Vous avez eu des erreurs de Sytax dans vos données, principalement que vous utilisiez [] code>, puis affectant clé: valeur em> paires, qui appartiendrait dans un objet - I ' ve échangé le [] code> pour {} code> dans ce cas

J'ai utilisé un .ReRuce () Code> Pour itérer via vos données et renvoyer le tableau souhaité. Je n'étais pas sûr de la façon dont vous vouliez le numéro de téléphone manipulé, je retourne simplement le premier P>

p>

const arrayIn = [{
    phoneNumbers: [{
      label: 'work',
      number: '+3476859087'
    }, {
      label: 'mobile',
      number: '+4567893214'
    }],
    lookupKey: "12345",
    company: "PHONE",
    firstName: "John",
    contactType: "person",
    name: "John Smith",
    id: "879",
    emails: [{
      email: 'johnSmith@gmail.com'
    }],
    lastName: "Smith",
  },
  {
    phoneNumbers: [{
      label: 'mobile',
      number: '+3476859087'
    }, {
      label: 'work',
      number: '+4567773214'
    }],
    lookupKey: "890744",
    company: "PHONE",
    firstName: "Carl",
    name: "Carl Johnson",
    id: "879",
    emails: [{
      email: 'cjohnsonh@gmail.com'
    }],
    lastName: "johnson",
  }
]

let arrayOut = arrayIn.reduce((acc, {
  name,
  phoneNumbers,
  emails
}) => {
  return [...acc, {
    'name': name,
    'phone': phoneNumbers[0]['number'].replace('+', ''),
    'email': emails[0].email
  }];
}, []);

console.log(arrayOut);


2 commentaires

Désolé que j'étais mon erreur lors de l'affichage de la question, le tableau a imbriqué des matrices imbriquées non des objets avec [] vs {}


Ahh je viens de mettre à jour le tableau, mais votre réponse doit fonctionner avec simplement le numéro de référencement au lieu de zéro. Je vais vérifier rn