2013-05-28 4 views
0

안녕하세요, 다음 코드와 함께 자바에 배열을 합산하려고합니다.자바 배열의 합계 배열

var data[]: 
var total=0; 
data.push[x]; // x is numbers which are produced dynamically. 
for(var i=0, n=data.length; i < n; i++) 
{ 
    total=total+data[i]; 
} 
alert(total) 

예를 들어 x 값이 각각 5,11,16,7 인 경우. 총 가치가 511167이 5 + 11 + 16 + 7 = 39가 아닌 값으로 합계를 표시합니다. 그 이유는 무엇입니까? 감사합니다. .

+0

'x'는 실제로 int의 목록입니까? –

+0

왜? "+"연산자가 concat처럼 상호 작용하기 때문에 ... – Pouki

+0

total = total + + data [i] –

답변

1

사용 parseInt()

total=parseInt(total)+parseInt(data[i]); 
+0

total이 int로 초기화되면'total + = parseInt (data [i]);'라고 쓸 수 있습니다. int로 남음 –

+0

고맙습니다. 이제 작동합니다. – user1874941

+0

@ user1874941.Plz에 오신 것을 환영합니다. 정답으로 표시합니다. :-) –

0

이 하나의 시도 자바 스크립트 함수 : 숫자로 문자열 값을 변환 할

total=total+parseInt(data[i]); 
1

가에서는 parseInt와 시도 값 :

total = total + (+data[i]); 

더 좋은 total=total+... 대신 +=를 사용

total += +data[i]; 

JSFiddle demo합니다.

1

는 단순히 unary +data[i] 전에 채찍 :

var total = 0; 
for (var i = 0; i < someArray.length; i++) { 
    total += someArray[i] << 0; 
} 
0

사용으로 parseInt() 자바 스크립트 함수 ....

총 합계 = +으로 parseInt (데이터 [I]);

여기 보이는 'x'는 동적으로 제공되는 문자열 유형입니다. "typeof x"를 확인하십시오.