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
질문을 잘 모르겠네요.
[1,2,3,4,5,6] 에서 첫번째 값은 다른 배열의 첫번째끼리 더해서 평균을 내고, 2번째 값은 다른 배열의 2번째 끼리 더해서 평균을 내고.. 그러는것일까요
좀 무식하게 짜봤습니다만..
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] 하시면.. 총 합 나누기 몇개의 배열에 속해있었나.. 평균..
!-->
참고로 추가합니다.
<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>
답변을 작성하시기 전에 로그인 해주세요.