4

いくつかのフォームフィールドを通過し、ユーザー入力を取得して配列に格納する単純なスクリプトで、問題が発生しました。

これを行うと機能します:

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

しかし今、私は別の配列を追加しました。この場合、同じq1A変数を単に格納することになっています。しかし、どういうわけか、変数が未定義であることを示す「UncaughtTypeError」が発生します。新しいコードブロックは次のとおりです。

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 に答える