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

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

QA

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

본문

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]);
이런식으로 해보시면 어떨까요?

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

답변을 작성하시기 전에 로그인 해주세요.
전체 125,873 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT