자바스크립트 임의배열을 매개변수로 받아 평균을 내는 함수 질문
본문
var testarray=[3,2,1];
function avg(array){
for(var i=0;i<array.length;i++){
var sum;
sum += array[i];
}
return sum/array.length;
}
document.write(avg(testarray));
이런 식으로 특정 배열을 매개변수로 받아 평균값을 낸 뒤 출력하는 함수를 만들고싶었으나
출력이 안되던데..어디서부터문제인지 잘 모르겠어서요...
어떻게 해야 될까요?
return에 document.write(sum/array.length);
는 이미 해보았습니다
답변 2
var testarray=[3,2,1];
function avg(array){
for(var i=0;i<array.length;i++){
var sum;
sum += array[i];
}
return sum/array.length;
}
document.write(avg(testarray));
=>
var testarray=[3,2,1];
function avg(array){
var sum = 0; // 초기화가 안되서 오류가 나온겁니다.
for(var i=0;i<array.length;i++){
sum += array[i];
}
return sum/array.length;
}
document.write(avg(testarray));
var은 선언문이지 전역변수를 나타내지 않습니다.
JavaScript에서
변수는 선언을 안하면 전역변수로 사용되지만
선언을 하면 로컬변수가 됩니다.
{
}
범위의 영향을 받습니다.
중요한건 초기값이 없어서 그렇습니다.
for문 안에다가 선언하면
매번 초기화 되니 오류
!-->일단 var sum 의 위치가 좀 문제가 있어보이네요.
var sum;
for(var i=0;i<array.length;i++){
sum += array[i];
}
이렇게 바꿔보세요