数据结构的类型

Type of datastructure

本文关键字:类型 数据结构      更新时间:2023-09-26

我有多个包含子问题的问题。我想存储在一个数据结构中,这样我就可以在用户选择第一个问题时选择子问题。此外,有些子问题在该类别中使用一般问题。最初我想使用多维数组,但后来我意识到它将花费相当长的时间来搜索数组。

欢迎提出任何建议。

谢谢

这是我到目前为止的解决方案。

//Key is the question and value(object) contains all the value related to the question
categoryToSubquestions[2] = {"What type of countertop?":{
                                "stone_slab_countertops": "Stone slab countertops",
                                "granite_countertops" : "Granite countertops",
                                "marble_countertops" : "Marble countertops",
                                "quartz_countertops" : "Quartz countertops",
                                "slate_countertops" : "Slate countertops",
                                "solid_surface_countertops" : "Solid Surface countertops",
                                "concrete_countertops" : "Concrete countertops",
                                "corian_countertops" : "Corian countertops",
                                "formica_countertops" : "Formica countertops",
                                "stainless_countertops" : "Stainless countertops",
                                "wood_or_butcher_block_countertops" : "Wood or Butcher block countertops",
                                "laminate_countertops" : "Laminate countertops",
                                "selectKey":"MappedCategory"
                            },
                             "What best describes your countertop project?":{
                                "install_or_replace": "Install or Replace",
                                "repair"        : "Repair",
                                "selectKey":"describe_countertop_project"
                            },
                             "generalQuestions2": "4"
                            };
//This is general question that other categories might use...It is being used in the above category
generalQuestion[4] = {"Is this project part of a larger remodel?":{
                            "true" : "Yes",
                            "false": "No",
                            "selectKey":"part_of_larger_remodel"
                        }
                    };
//THIS IS categoryToSuquestion index to value assosciation...(JUST TO KEEP TRACK)
var keyValue = new Array(
/*0*/           "cabinets_reface",
/*1*/           "cabinets_refinish",
/*2*/           "cabinets_countertop_install");

我现在有70个这样的问题,我有点担心,如果我继续增加更多的问题,它会变慢吗?

我会创建一个这样的数据结构。
别忘了,你可以像访问哈希表/字典一样访问它的属性。

var questions_data_structure = {
    "Q1": {
        "question_text": "Parent Question #1?",
        "sub_questions": ["SubQues1", "SubQues3"]
    },
    "SubQues1": {
        "question_text": "Sub Question 1?",
        "parent_question": "Q1"
    },
    "SubQues3": {
        "question_text": "Sub Question 3?",
        "parent_question": "Q1"
    },
    "Ques8": {
        "question_text": "Regular question without children questions?"
    }
}
q = questions_data_structure["Q1"];
alert(q.question_text);
if (q.sub_questions && q.sub_questions.length > 0) {
    alert("I have child questions");
    var i = 0, len = q.sub_questions.length, childQuestionObj;
    for (; i < len; i++) {
        childQuestionObj = questions_data_structure[q.sub_questions[i]];
        alert(childQuestionObj.question_text);
    }
}
else {
    alert("I DON'T have child questions");
}
因此,如果您将数据结构的KEY值绑定到HTML Control id,您可以这样做。
// include jQuery library
$.each(questions_data_structure, function(question_id, value) {
    if (value.sub_questions && value.sub_questions.length > 0) {
        $('#' + question_id).click( function(e) {
            /* Show or hide your child question controls */
        });
    }
});