Warning: Undefined array key "mobile_dir" in /home/kagla/new-sir/old/common.php on line 315
자바스크립트 임의배열을 매개변수로 받아 평균을 내는 함수 질문

자바스크립트 임의배열을 매개변수로 받아 평균을 내는 함수 질문

자바스크립트 임의배열을 매개변수로 받아 평균을 내는 함수 질문

QA

자바스크립트 임의배열을 매개변수로 받아 평균을 내는 함수 질문

답변 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));

 

이런 식으로 특정 배열을 매개변수로 받아 평균값을 낸 뒤 출력하는 함수를 만들고싶었으나

출력이 안되던데..어디서부터문제인지 잘 모르겠어서요...

어떻게 해야 될까요?

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];
  }

 

이렇게 바꿔보세요

딱히 상관은 없죠 ^^
단지 문제가 좀 있어 보인다는 뜻이었습니다.
NaN 나온다니 아마 + 연산이 제대로 안되는듯 합니다.
sum = 0;
sum += ParseInt(arrary[i]);
이런식으로 해보시면 어떨까요?

따로 디버깅을 해본게 아니라서 확실하지는 않네요 ^^

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,406
© SIRSOFT
현재 페이지 제일 처음으로