4

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

当我这样做时它有效:

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

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

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

我在控制台中记录了变量,它工作得很好,它已经设置并且有一个值。知道为什么它说它是未定义的吗?'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();
4

2 回答 2

5

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

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

于 2012-08-09T12:00:54.427 回答
4

首先你必须定义为数组。

var   input=[];

然后尝试推动元素。

input.push(element); 
于 2012-08-09T11:57:19.520 回答