オンライン質問応答システムでは、質問には通常、主要な質問に加えてサブ質問や補足的な質問が含まれる可能性があります。これらのニーズを満たすために、この記事では、JavaScriptコードを使用してこの機能を実装する方法について説明します。
まず、各質問の内容と、サブ質問、補足的な質問と同様に、各質問の内容とその関連オプション、回答、補足的な質問を表すための質問オブジェクトを定義する必要があります。コンストラクターを介してトピックオブジェクトを作成し、そのプロパティを定義できます。
function Question(content, options, answer) {
this.content = content;
this.options = options;
this.answer = answer;
this.subQuestions = []; // サブクエストアレイ
this.supplementQuestions = []; // 補足的な質問配列
}
次に、トピックオブジェクトに2つのメソッドを追加します。1つはサブ質問を追加するため、もう1つは補足的な質問を追加するためです。このようにして、サブ質問や補足的な質問をトピックに柔軟に関連付けることができます。
Question.prototype.addSubQuestion = function(subQuestion) {
this.subQuestions.push(subQuestion);
};
Question.prototype.addSupplementQuestion = function(supplementQuestion) {
this.supplementQuestions.push(supplementQuestion);
};
定義されたコンストラクターに基づいて質問オブジェクトを作成し、対応する関数を通じてサブ質問と補足的な質問を追加できます。このプロセスを実装する方法のコード例は次のとおりです。
var mainQuestion = new Question("サブジェクトコンテンツ", ["オプションA", "オプションB", "オプションC"], "答えA");
var subQuestion1 = new Question("サブトピック1コンテンツ", ["オプションA", "オプションB"], "答えB");
var subQuestion2 = new Question("サブトピック2コンテンツ", ["オプションC"], "答えC");
mainQuestion.addSubQuestion(subQuestion1);
mainQuestion.addSubQuestion(subQuestion2);
var supplementQuestion1 = new Question("補足トピック1コンテンツ", ["オプションA", "オプションB", "オプションC"], "答えB");
var supplementQuestion2 = new Question("補足トピック2コンテンツ", ["オプションC"], "答えC");
mainQuestion.addSupplementQuestion(supplementQuestion1);
mainQuestion.addSupplementQuestion(supplementQuestion2);
上記のコードの例を使用して、オンライン応答システムにサブ質問と補足的な質問を追加する機能を正常に実装しました。この実装により、問題構造がより明確になるだけでなく、簡単な拡張とメンテナンスも可能にします。さらに、質問オブジェクトはバックエンドデータベースと対話して、データのストレージと取得を実現できます。質問オブジェクトのプロパティによれば、ページを柔軟にレンダリングして豊富な質問フォームを提示することもできます。
このようにして、当社のオンライン応答システムは、より複雑な質問構造をサポートし、ユーザーエクスペリエンスを向上させることができます。