无法设置多维javascript数组的属性

时间:2014-05-20 16:23:25

标签: javascript arrays multidimensional-array

我的JavaScript代码是:

var i=0;
var ret=[];
ret[i][0]=newID;
ret[i][1]=jobTitle;
ret[i][2]=jobText;
ret[i][3]=jobEmail;
ret[i][4]=jobOrder;

这些都是字符串,都有价值。 我收到了错误:

  

“未捕获的TypeError:无法设置未定义的属性'0'   第一次分配:ret [i] [0] = newID;

jsfiddle也出错 http://jsfiddle.net/Zf9rE/2/

我做错了什么?

2 个答案:

答案 0 :(得分:6)

在尝试向其添加元素之前,您必须创建ret[i]

var i=0;
var ret=[];

ret[i] = []; // define ret[i]

ret[i][0]=newID;
ret[i][1]=jobTitle;
ret[i][2]=jobText;
ret[i][3]=jobEmail;
ret[i][4]=jobOrder;

Updated fiddle

除非有理由对数组索引进行硬编码,否则您可能更喜欢创建数组文字(如注释中的@Rocket所示)或使用Array.prototype.push()

ret[i].push(newID);
ret[i].push(jobTitle);

答案 1 :(得分:0)

另一种方法:

var jobTitle="j title";
var jobText = "j desc";
var jobEmail="jemail";
var jobOrder="j order";
var newID="3";

var i=0;
var ret = new Array();
var matrix = new Array()

ret[0]=newID;
ret[1]=jobTitle;
ret[2]=jobText;
ret[3]=jobEmail;
ret[4]=jobOrder;

matrix[i] = ret;
console.log(matrix[0][0]);

小提琴:http://jsfiddle.net/robertrozas/Zf9rE/6/