본문 바로가기

Slack 채널 정리

js - 객체 배열 중 특정 property 값에서 max/min 값 찾는 방법, 그리고 여담

https://codeburst.io/javascript-finding-minimum-and-maximum-values-in-an-array-of-objects-329c5c7e22a2 


1. 제일 빠른 방식은 그냥 for 문 돌리는거. 다음은 reduce. 
2. 회사 내 개발 화면에서 for 와 reduce 의 성능 차가 체감될 정도의 데이타 처리량 많은 경우가 있을까? 난 깔끔한 reduce 쓰겠음. 
3. 우리 조직의 팀장과 모듈 리더는 일반 개발자들이 저런 식으로 하면 이해 못한다고, 그리고 저런 표현 고민하느라 시간 쓰기보다는 그냥 지금 방식처럼 머리 안 쓰고 빨리 짜는게 필요하다는 입장 - 이번에 JS 리팩토링하면서 실제로 권고(?) 받았음 - 이라 아마 reduce 쓰면 한 소리할 듯.
4. 위 페이지의 샘플 소스는 화살표 함수를 사용한 ES6 방식이라 ES5 구문으로 바꿔야 한다면 이런 식으로

function getMaxY() {
 return data.reduce(function (max, p) {
   return p.y > max ? p.y : max;
 }, data[0].y);
}

5. 단일 객체의 속성 중에서 max 값을 구하는 건 아래와 같이 할 수도 있습니다.

var sht = { "a":4, "b":0.5 , "c":0.35, "d":5 }
var arr = Object.keys(arr).map(function (key) { return arr[key]; });
var max = Math.max.apply(null, arr);