현상:
- 알고리즘을 하다보면 메모리와 시간에 눈이 갈 수 밖에 없다.
Java에서 자주 쓰던 For While Loop 문을 JS 에서도 많이
적용할수 있다.
그렇다면 JS 에서 제공해주는 map, filter, reduce etc 어떤 차이가 있을까?
궁금증이 생겼다.
시도: 같은 알고리즘에 for문과 filter 만 바꿔서 사용해 보았다.
결과: 배열이 작아서 그렇게 큰 차이는 못느꼈다.
재시도: 배열을 조금 크게 해보았다. 조금 씩 for loop이 빠르게 나왔다.
궁금증: 그럼 JS 제공해주는 친구들은 왜 있는걸까?
해결: 구글링/책
- 유지보수와 가독성.
- filter()은 사실 배열을 새로 반환하고 탑재되 있는 기능 때문에 데이터가 많으면 안좋은 결과를 만들수 있다 고 한다. 가독성(filter)과 성능(for loop) 사이에 TradeOff 잘 생각해야한다.
JS가 제공하는 high-order function이 많다.
작은 메모:
- map() 은 함수를 조작해서 새로운 배열에 값을 넣어 내보낸다. (배열의 길이가 같다)
- filter()의 경우 boolean 형태로 맞는것만 배열에 넣어줄수있다.(배열의 길이가 다르다)
일반적으로 메모리를 생각할 만큼 크게 생각할 필요는 없다고 한다.