2016-05-23 8 views
0

質問が回答に依存するアンケートを作成しようとしています
質問とアンケートの流れを正確に反映するUIデータ構造は何ですか?アンケートの正しいデータ構造となるもの

申し訳ありませんが、答えに基づいてUIのいくつかの部分を削除したいので、私は動的にHTMLベースの答えを変更することができますので、私はJavaスクリプトのデータ構造のいくつかの種類が必要ですJSONとしてデータをページに持ち込む方法、JSで保持する方法、jsonと回答に基づいてUIの一部を削除する方法などがあります。

1 What is your name?_______ 
2 Did you ever code in java?___Y/N____ 
    3 <Question should appear only if answer is yes> How many years? ____ 
    4 <Question should appear only if answer is no> Did you ever code using any programming language? ____ 
5 Select occupation 
     a Developer 
     b Project manager 
6 <Question should appear only if answer to 5 is b> years experience in project management ________ 
+1

最も明白な答えによって評価されるようconditions: [{id: "code-java", operator: "equals", value: "yes"}]などのデータ構造を使用して、条件の機能を交換する必要があります。 – Paul

+1

@Paul:バイナリツリーではなく、バイナリ検索ツリーです。 –

+1

@ジムミッシェルsry、2つが混ざっている。私はバイナリツリーを意味しました – Paul

答えて

9

のは、我々は唯一の以下の制約があるとしましょう:

  • あなたは正確に一度
  • 質問をそれぞれの質問を定義したいのいずれかの答えに依存することが以前に質問
を尋ねました

次に、私は以下の一般的な解決策を提案します:

012あなたはおそらく、などの検証機能、タイプ(ブール、テキスト、選択、...)として、それぞれの質問に詳細を追加したいと思う

あなたは格納する必要がある場合そして平野JSONとしてあなたの質問を転送するには、条件付き質問の各ツリーのBSTだろう

operators = { 
    'equals': (answer, value) => answer == value, 
    'regex': (answer, value) => new RegExp(value).test(answer), 
    ... 
} 

conditions.every(condition => operators[condition.operator](answers[condition.id], condition.value)) 
関連する問題