Galadre
Galadre

Reputation: 619

Javascript/jQuery - "Cannot call method 'push' of undefined" while it IS defined

In a simple script that goes through some form fields, gets the user input and stores it into arrays I ran into a problem.

It works when I do this:

var q1A = parseFloat($('#q1-1').val());
if(isNaN(q1A)) {
    var q1A = 0;
}
parameter.push(' ');
answers.push(q1A);

But now I added another array which, in this case, is supposed to simply store the same q1A variable. But somehow I end up with an "Uncaught TypeError" stating that the variable is undefined! The new code block is:

var q1A = parseFloat($('#q1-1').val());
if(isNaN(q1A)) {
    var q1A = 0;
}
input.push(q1A);
parameter.push(' ');
answers.push(q1A);

I logged the variable in the console and it works just fine, it's set and has a value. Any idea why it says it's undefined? The 'answers' array stores the value just fine.

Thanks in advance!

EDIT:

Of course I defined the variables. I just didn't post that part of the code...

var groups = new Array();
var questions = new Array();
var input = new Array();
var parameter = new Array();
var answers = new Array();
var amounts = new Array();

Upvotes: 3

Views: 34067

Answers (2)

Aaron Digulla
Aaron Digulla

Reputation: 328556

Since it's possible to push an undefined variable into an array without error, the problem must be that input isn't defined when you try to call push() on it.

The usual reason for this problem is that there is another place where the variable input is declared and it's never initialized in the unexpected place.

Upvotes: 5

kongaraju
kongaraju

Reputation: 9596

First you have to define as array.

var   input=[];

then try to push the element.

input.push(element); 

Upvotes: 4

Related Questions