Javascript jQuery多维数组定义 var问题={}; 对于(var i=0;i

Javascript jQuery多维数组定义 var问题={}; 对于(var i=0;i,javascript,jquery,arrays,multidimensional-array,Javascript,Jquery,Arrays,Multidimensional Array,未捕获的TypeError:无法设置未定义的属性“questions” 如何定义多维数组? 我试着像var-questions=[]但它也不起作用…您需要先初始化对象。只要写 var questions = {}; for (var i = 0; i < tmp_questions.length; i++) { questions[i]["questions"] = tmp_questions[i]; questions[i]["input_type_id"] = tmp

未捕获的TypeError:无法设置未定义的属性“questions”

如何定义多维数组?
我试着像
var-questions=[]但它也不起作用…

您需要先初始化对象。只要写

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 i=0;i
经过几处更正后,您就快到了

错误1:

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];
}
这是一个对象声明。不是数组

错误2:

var questions = {}; 
为此,您必须在
问题的
i
位置放置一个对象

所以更正之后,

questions[i]["questions"]
var问题=[]//报到
对于(var i=0;i
插入前必须进行初始化。 检查这个

var tmp_choices=tmp_question_types=tmp_questions=[1,2,3,4,5];
变量问题=[];//如果希望问题是对象数组,请使用[]
对于(var i=0;i控制台日志(问题)我想你要找的是一组对象:

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];

}
//这应该是一个数组
var问题=[];
对于(var i=0;i
或者以这样一种清晰的方式:

// 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];
}
//这应该是一个数组
var问题=[];
对于(var i=0;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]
    });
}
希望能有帮助,, Paul J

您的数组不是一个数组,而是一个对象数组。 多维数组应类似于:

var questions = [];
for(...){
    questions[i] = {
        questions : tmp_questions[i],
        "input_type_id" : tmp_question_types[i],
        choices :  tmp_choices[i]
    }
}
无论如何,为了创建一个数组,其中可能包含一个带有“问题、ID和选择”的对象,您必须初始化数组的每个元素

请参见以下内容:

var-tmp_-questions=[“test1”、“test2”];
变量tmp_问题_类型=[“类型1”,“类型2”];
var tmp_choices=[“choice1”、“choice2”];
var questions=新数组();
对于(var i=0;i控制台日志(问题)为什么要将此标记为
jQuery
?可以删除
jQuery
标记吗?@ibrahimmahrir Ahh。。我的拼写错误很糟糕。更正。
var questions = [];
for(...){
    questions[i] = {
        questions : tmp_questions[i],
        "input_type_id" : tmp_question_types[i],
        choices :  tmp_choices[i]
    }
}
var bidimensionalArray = new Array(new Array());
var tridimensionalName = new Array(new Array(new Array()));