2017-07-10 7 views
0

FAQのライブラリをフロントエンドのタブに分割しているので、ハードコードされたHTMLではなくFAQのデータベースを持つことができるNodeJSアプリケーションを作成しました。 。Mustacheで使用するためのNodeJS DBコンテンツの準備

私は、次を使用して、タブの関連で質問をフィルタリングされたJSONファイルを生成NodeJSモデルがあります:

thisを出力している
res = _.groupBy(res, 'tab_title'); 

を。ただし、以下の

は、テンプレート内の口ひげタグは、それが見えるように期待していることを、元のJSONファイルの構造である:

{ 
"tabs": [ 
    { 
     "title": "Tab title", 
     "id": 1, 
     "questions": [ 
      { 
       "question": "Question here", 
       "id": 1, 
       "answer": "Answer here" 
      }, 
      { 
       "question": "Question two", 
       "id": 2, 
       "answer": "Answer here" 
      } 
     ] 
    }, 
    { 
     "title": "Another title", 
     "id": 2, 
     "questions": [ 
      { 
       "question": "Question here", 
       "id": 1, 
       "answer": "Answer here" 
      }, 
      { 
       "question": "Question two", 
       "id": 2, 
       "answer": "Answer here" 
      } 
     ] 
    } 
} 

これは非常にフロントエンド・タグであるタブの上にできるだけのループ、フロントエンドが比較的自動化されるように、タブ内の質問をループします。

私は_.map関数を使用して、この構造内のすべての適切な情報を出力しようとしましたが、本当に苦労しています。誰も助けることができる方向に私を指すことができますか?

私はこれが十分な情報であることを望みますが、そうでない場合はもっと提供することができます。

ありがとうございます!

答えて

0

私たちはあなたのようにグループを生成することから始めます。

_.groupBy(myArray, 'tab_title'); 

しかし、ここでは私たちの問題は完全には解決されませんが、オブジェクトはまだ意図した構造に一致しません。

{ 
    "tab_title1" : [{...}, {...}], 
    "tab_title2" : [{...}, {...}] 
} 

だから我々はこれをさらに処理するために、マップ機能を使用できます:

_.map(groupObject, (lstFaqs, tab_title) => { 
    let first = _.first(lstFaqs), 
     tab_object = { 
      title: first.tab_title, 
      id: first.tab_id, 
      questions: _.map(lstFaqs, (faqItem) => { 
       id: faqItem.faq_id, 
       question : faqItem.faq_question, 
       answer : faqItem.faq_answer 
      }) 
     } 

    return tab_object; 
}) 

我々はtab_objectの配列になってしまいますこれは次のようになります。したがって、フォーマットを確定するには:

let result = { "tabs" : array_of_tab_object } 

私はこの助けを願っています!

関連する問題