2012-08-09 3 views
3

을 정의하면서 "정의되지 않은 방법 '푸시'를 호출 할 수 없습니다", 내가 문제로 실행 배열로 사용자 입력 및 저장을 가져옵니다. 나는이 수행 할 때자바 스크립트/jQuery를이 - 그것이 어떤 형태의 필드를 통과 간단한 스크립트에서

그것은 작동합니다

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

을하지만 지금은이 경우, 단순히 같은 Q1A 변수를 저장하도록되어, 다른 배열을 추가했다. 하지만 어떻게 든 변수가 정의되지 않았 음을 나타내는 "Uncaught TypeError"로 끝납니다! 새로운 코드 블록은 다음과 같습니다

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(); 
+3

은 어디'input' 정의? – dunc

+1

'input'은 배열이 아니므로, 이전에 정의 된 배열로만 어떤 변수로도 넘길 수 없습니다. – adeneo

+0

나는 그것들을 정의했다. 지금 게시글에 추가했습니다. – Galadre

답변

4

는 문제가 input가 정의되지 않은 것을해야합니다.

이 문제에 대한 일반적인 이유는 변수 input 선언 다른 곳과는 예상치 못한 장소에서 초기화 결코 것입니다.

+0

그것은 입력 배열에 대한 답변을 잘 작동합니다. 하지만 어느 것이 든 관계없이 입력 배열을 제거하면 모든 것이 잘 작동합니다. 하지만 추가 할 때 함수는 해당 배열에 처음 들어가면 즉시 중지됩니다. 함수의 시작 부분에서 배열을 한 번만 선언했습니다. jsfiddle에서 문제를 재현하려고합니다. – Galadre

+0

코드에서 'var input'을 검색하십시오. 당신이 기대하지 않는 결과가 적어도 하나는 있음을 확신합니다. .!.. –

+0

아니 :(나는 전체 기능 ... – Galadre

1

먼저 배열로 정의해야합니다.

var input=[]; 

그런 다음 요소를 누르십시오. 이 오류없이 배열로 정의되지 않은 변수를 밀어하는 것이 가능하기 때문에 당신이 그것에 push()를 호출 할 때

input.push(element); 
+1

이미 배열을 선언 단지 실수였습니다, 더 이상 아니에요 단지 코드의 일부를 게시하지 않았다. – Galadre

+1

편집하기 전에 답변을 드렸습니다. –

관련 문제