【问题标题】:jQuery multidimensional array definitionjQuery多维数组定义
【发布时间】:2017-09-25 02:09:06
【问题描述】:
var questions = {}; 
for (var i = 0; i < tmp_questions.length; i++) {
    questions[i]["questions"] = tmp_questions[i];
    questions[i]["input_type_id"] = tmp_question_types[i];
    questions[i]["choices"] = tmp_choices[i];
}

未捕获的类型错误:无法设置未定义的属性“问题”

如何定义该多维数组? 我试过var questions = [];,但它也不起作用......

【问题讨论】:

  • 为什么标记为jQuery?可以删除jQuery 标签吗?

标签: javascript jquery arrays multidimensional-array


【解决方案1】:

您的数组不是Multi-dimensional Array,而只是一个对象数组。 多维数组应该是这样的:

var bidimensionalArray = new Array(new Array());
var tridimensionalName = new Array(new Array(new Array()));

无论如何,为了创建一个可以包含对象的数组:“问题、ID 和选择”,您必须初始化数组的每个元素。

请看以下内容:

var tmp_questions = ["test1", "test2"];
var tmp_question_types = ["type1", "type2"];
var tmp_choices = ["choice1", "choice2"];


var questions = new Array(); 
for (var i = 0; i < tmp_questions.length; i++) {
    questions[i] = {};
    questions[i]["questions"] = tmp_questions[i];
    questions[i]["input_type_id"] = tmp_question_types[i];
    questions[i]["choices"] = tmp_choices[i];
}

console.log(questions);

希望对你有帮助,再见。

【讨论】:

    【解决方案2】:

    我认为您正在寻找的是一组对象:

    // this should be an array
    var questions = [];
    for (var i = 0; i < tmp_questions.length; i++) {
        // for each iteration, create an object and fill it
        questions[i] = {};
        questions[i]["questions"] = tmp_questions[i];
        questions[i]["input_type_id"] = tmp_question_types[i];
        questions[i]["choices"] = tmp_choices[i];
    }
    

    或以这样的清晰方式:

    // this should be an array
    var questions = [];
    for (var i = 0; i < tmp_questions.length; i++) {
        // for each iteration, push an object like so
        questions.push({
            "questions":     tmp_questions[i],
            "input_type_id": tmp_question_types[i],
            "choices":       tmp_choices[i]
        });
    }
    

    【讨论】:

      【解决方案3】:

      您几乎完成了几次更正。

      错误 1:

      var questions = {}; 
      

      这是一个对象声明。不是数组。

      错误 2:

      questions[i]["questions"]
      

      为此,您必须在questionsi 位置有一个对象。

      所以在修正之后,

      var questions = [];  //declare arry
      for (var i = 0; i < tmp_questions.length; i++) {
          questions.push({}); //push it
          questions[i]["questions"] = tmp_questions[i]; // add properties
          questions[i]["input_type_id"] = tmp_question_types[i];
          questions[i]["choices"] = tmp_choices[i];
      
      }
      

      【讨论】:

      • @ibrahimmahrir Ahh.. 我错了。已更正。
      【解决方案4】:

      在将数据推入数组之前,您必须将对象创建到数组中:

          var questions = []; // here is an array
          for (var i = 0; i < tmp_questions.length; i++) {
              questions[i] = {}; // here is an empty object
              questions[i]["questions"] = tmp_questions[i];
              questions[i]["input_type_id"] = tmp_question_types[i];
              questions[i]["choices"] = tmp_choices[i];
          }
      

      其实你可以这样做:

      var questions = [];
      for(...){
          questions[i] = {
              questions : tmp_questions[i],
              "input_type_id" : tmp_question_types[i],
              choices :  tmp_choices[i]
          }
      }
      

      希望有所帮助, 保罗·J

      【讨论】:

        【解决方案5】:

        您必须在插入之前进行初始化。 检查这个

        var tmp_choices= tmp_question_types = tmp_questions = [1,2,3,4,5];
        
        var questions = [];  // If you want questions to be array of objects then use []
        
        for (var i = 0; i < tmp_questions.length; i++) {
        questions[i] = {};
            questions[i]["questions"] = tmp_questions[i];
            questions[i]["input_type_id"] = tmp_question_types[i];
            questions[i]["choices"] = tmp_choices[i];
        }
        console.log(questions);

        【讨论】:

          【解决方案6】:

          您需要先初始化对象。随便写

          questions = [];
          for (var i = 0; i < tmp_questions.length; i++) {
              questions[i] = {};
              questions[i]["questions"] = tmp_questions[i];
              questions[i]["input_type_id"] = tmp_question_types[i];
              questions[i]["choices"] = tmp_choices[i];
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-09-12
            • 1970-01-01
            • 1970-01-01
            • 2012-09-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多