2

My JavaScript code is this:

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;

These are all strings and all have value. I'm getting the error:

"Uncaught TypeError: Cannot set property '0' of undefined" on the first assignment: ret[i][0]=newID;

Also error at jsfiddle http://jsfiddle.net/Zf9rE/2/

what am I doing wrong?

2 Answers 2

6

You must create ret[i] before you try to add elements to it:

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

Unless there is a reason to hard code the array indexes, you might prefer to either create an array literal (as @Rocket shows in the comments) or use Array.prototype.push():

ret[i].push(newID);
ret[i].push(jobTitle);
Sign up to request clarification or add additional context in comments.

2 Comments

Or even better: ret[i] = [newID,jobTitle,jobText,jobEmail,jobOrder]; ;-)
var ret = [ [newID,jobTitle,jobText,jobEmail,jobOrder] ]; ;)
0

Another aproach:

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

Fiddle: http://jsfiddle.net/robertrozas/Zf9rE/6/

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.