Javascript / jQuery - 定义时“无法调用未定义的'push'方法”

Gal*_*dre 4 javascript arrays jquery

在通过一些表单字段的简单脚本中,获取用户输入并将其存储到数组中,我遇到了问题。

当我这样做时它有效:

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

但是现在我添加了另一个数组,在这种情况下,它应该只是存储相同的 q1A 变量。但不知何故,我最终得到了一个“未捕获的类型错误”,指出该变量未定义!新的代码块是:

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

我在控制台中记录了变量,它工作得很好,它被设置并有一个值。知道为什么它说它未定义吗?'answers' 数组存储值就好了。

提前致谢!

编辑:

当然我定义了变量。我只是没有发布那部分代码......

var groups = new Array();
var questions = new Array();
var input = new Array();
var parameter = new Array();
var answers = new Array();
var amounts = new Array();
Run Code Online (Sandbox Code Playgroud)

Aar*_*lla 5

由于可以将未定义的变量推入数组而不会出错,因此问题一定是input在您尝试调用push()它时未定义。

这个问题的常见原因是变量input被声明在另一个地方,并且它从未在意外的地方初始化。