2017-07-23 1 views
0

J'essaye de mapper à travers un objet "contentMap" (qui est dans un tableau "faqArray") et d'accéder "question" et "réponse" qui sont à l'intérieur des objets "policy1", "policy2" etc.Mapper à travers un objet avec des objets enfants- Javascript

Voici mon exemple de données json. Ci-dessous est le code de niveau de composant de réaction qui tente d'accéder à la question et à la réponse.

{faqArray.map((faqInfoGroup, i) => [ 
    <div key={i}> 
     <div className="faqQuestionGroup" dangerouslySetInnerHTML={this.createMarkup(faqInfoGroup.header)}></div> 
     {Object.keys(faqInfoGroup).map((qaMap, i) => 
      <div className="faqQuestions" key={i}> 
      Q.&nbsp; <a className="faqLinks" href={`#default_${qaMap.question}`} dangerouslySetInnerHTML={this.createMarkup(qaMap.question)}> 
      </a> 
      </div> 
     )} 
     </div> 
])} 

En utilisant le code ci-dessus, je suis capable de mapper à travers "faqArray" en utilisant .map. Je suis également capable de mapper à travers l'objet "contentMap" en utilisant Object.keys (faqInfoGroup) .map. Mais mon vrai problème est l'accès aux questions et réponses à l'intérieur de policy1, policy2 et policy3. Object.keys (faqInfoGroup) .map me donne "policy1", "policy2" etc. comme des chaînes plutôt que des objets. Pour cette raison, policy1.answer, policy.question ne fonctionne pas.

J'ai aussi essayé javascript forEach(), mais je n'arrive toujours pas à accéder aux questions et réponses.

Comment puis-je accéder à "question" et "answer" qui se trouvent dans "policy1", policy2 "et policy3"?

Faites-moi savoir vos suggestions. Ca serait d'une grande aide.

Répondre

2

Vous devriez être en mesure de le faire faqInfoGroup.contentMap[qaMap].question (après le commentaire de @ Abhi)

{faqArray.map((faqInfoGroup, i) => [ 
    {Object.keys(faqInfoGroup).map((qaMap, i) => { 
     //faqInfoGroup.contentMap[qaMap].question 
     //faqInfoGroup.contentMap[qaMap].answer 
    })} 
])} 
+1

Merci @Dhiraj. Cela a fonctionné après quelques modifications. faqArray [i] .contentMap [qaMap] .question ne fonctionnait pas, donc j'ai fait faqInfoGroup.contentMap [qaMap] .question. – abhi