js - list의 연산 채택완료

list = [

            [1,2,3,4,5, 6]

         , [1,2,3,4,5, 6]

         ,[1,2,3,4,5, 6]

         ,[1,2,3,4,5, 6]

]

 

저런 list가 있다고 칠때

 

list의 평균을 구하고 싶습니다.

 

최종 : [ 1,2,3,4,5,6]

답변 2개

채택된 답변
+20 포인트

질문을 잘 모르겠네요.

 

[1,2,3,4,5,6] 에서 첫번째 값은 다른 배열의 첫번째끼리 더해서 평균을 내고, 2번째 값은 다른 배열의 2번째 끼리 더해서 평균을 내고.. 그러는것일까요

 

좀 무식하게 짜봤습니다만..

Copy
list = [  

  [1,2,3,4,5,6],

  [1,2,3,4,5,6,7,8,9],

  [2,5,1,7,4,5],

  [1,2,3,4,5,6]

];

 

var result = [];

for(i=0; i<list.length;i++) {

  for(ii=0; ii<list[i].length;ii++) {

    if(result[ii] == undefined)

      result[ii] = [0, 0];

    result[ii][0] += list[i][ii];

    result[ii][1]++;

  }

}

 

이렇게 하면 result[0] = [0번째 순서 수의 합, 0번째가 속해있는 array 개수];

가 되는데..

 

이후에 result[0][0] / result[0][1] 하시면.. 총 합 나누기 몇개의 배열에 속해있었나.. 평균..

 

 

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

감사합니다~

좋은 주말 되셔요~~
감사합니다~

좋은 주말 되셔요~~

댓글을 작성하려면 로그인이 필요합니다.

참고로 추가합니다.

Copy
<script>
'use strict';
var i, j, sum = [], ave = []; // 합계, 평균 배열
var list = [
  [1, 2, 3, 4, 5, 6]
  , [1, 2, 3, 4, 5, 6]
  , [1, 2, 3, 4, 5, 6]
  , [1, 2, 3, 4, 5, 6]
];
for (i in list) {
  for (j in list[i]) {
    if ( typeof sum[j]==='undefined' ) sum[j] = 0; // 초기화
    // if ( sum[j]==undefined ) sum[j] = 0;
    sum[j]+= list[i][j]; // 위치별 합계
  }
}
for (i in sum) ave.push(sum[i]/list.length); // 평균
console.log(ave); // [1, 2, 3, 4, 5, 6]
</script>
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감사합니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고