고차함수를 배웠고, 사용하고는 있는데 딱 이거다 감이 오지 않는다.
무작정 복습한다고 문제만 풀어보다가 어떤 상황에서 filter map reduce를 사용하는지 확실하게 구별해보는 것이 좋을 것 같다는 생각이 들었다.
나는 지금
filter는 배열에서 조건에 부합하는 요소들만 모아 리턴하고
map은 배열 내 요소에 같은 작업을 해서 가공해 모아 리턴하고
reduce는 결과값을 하나로 리턴한다? 정도로 구별하고 있다.
리듀스에 대해서 1도 모르네😭 이럴수가
배열과 임의의 값
을 입력받아 기존 배열에서 임의의 값과 일치하는 요소가 제거
된 새로운 배열 리턴
배열과 임의의 값
을 입력받아 기존 배열에서 임의의 값과 일치하는 요소만
을 갖는 새로운 배열 리턴
문자열을 요소로 갖는 배열
을 입력받아 그 길이가 홀수
인 요소만을 갖는 배열 리턴
정수를 요소로 갖는 배열과 정수(num)
를 입력받아 num을 배열에 추가하고 정렬
한다고 가정할 경우, num의 인덱스
를 리턴
객체와 키
를 입력받아 키에 해당하는 값이 배열
인 경우, 100보다 작은 요소들
만 갖는 배열 리턴
배열(+ 임의의 값)이 주어지고, 여기에 조건을 주어서 filtering 함.
배열에서 특정 조건을 만족하는 값을 뽑아내고 싶을 때 사용.
수를 요소로 갖는 배열
을 입력받아 각 요소를 2배 곱한 새로운 배열
을 리턴
문자열을 요소로 갖는 배열
을 입력받아 각 요소의 길이
를 요소로 갖는 새로운 배열을 리턴
수를 요소로 갖는 배열
을 입력받아 각 요소가 2의 배수인지에 대한 정보
를 요소로 갖는 새로운 배열 리턴
개인정보를 담고 있는 객체를 요소로 갖는 배열
을 입력받아 각 객체의 특정 속성
을 요소로 갖는 배열 리턴
개인 정보를 담고 있는 객체를 요소로 갖는 배열
을 입력받아 이름 전체
를 요소로 갖는 배열 리턴
객체와 키
를 입력받아 키에 해당하는 값이 배열
인 경우, 배열의 각 요소를 제곱
한 새로운 배열 리턴
배열이 주어지고, 배열의 각 요소에 가공을 함.
모든 배열 요소에 어떤 조작을 하고 싶을 때 사용.
number타입
을 요소로 갖는 배열을 입력받아 배열의 모든 요소의 합
리턴
number타입
을 요소로 갖는 배열을 입력받아 배열의 모든 요소의 곱
리턴
number타입
을 요소로 갖는 배열을 입력받아 배열의 모든 요소의 평균
리턴
객체
를 요소로 갖는 배열과 문자열
을 입력받아 각 요소의 'animal' 속성값이 문자열과 일치할 경우, 해당 요소의 'score' 속성값을 모두 더한 값
리턴
문자열
을 요소로 갖는 배열을 입력받아 배열에서 가장 긴 문자열
리턴
문자열
을 요소로 갖는 배열을 입력받아 배열에서 가장 긴 문자열의 길이
리턴
2차원 배열
(배열을 요소로 갖는 배열)을 입력받아 배열들의 요소를 모두 담고 있는 단일 배열
리턴
배열(+ 문자열)이 주어지고, 조건에 따라 하나의 값으로 도출함.
누계값, 현재값을 인자로 가진다.
개인 정보를 담고 있는 객체
를 요소로 갖는 배열을 입력받아 18세 이상인 사람의 이름
을 요소로 갖는 배열 리턴
영화 정보가 담긴 객체
를 요소로 갖는 배열과 연도
를 입력받아 해당 연도 이전의 영화
를 요소로 갖는 배열 리턴
- 18세 이상을 필터링한 후 -> 2. 매핑하여 이름 출력
- 해당 연도 이전의 영화를 필터링 한 후 -> 2. 매핑하여 영화이름 출력
조건에 따라 필터링 한 후 필요한 값만 매핑해 출력하는구나!
배열
을 입력받아 배열에서 가장 짧은 길이를 가진 문자열
요소 리턴
2차원 배열
(배열을 요소로 갖는 배열)을 입력받아 모든 수(number)의 합
리턴
- 문자열인지 타입 여부 확인해 필터링한 후 -> 2. 가장 짧은 길이를 가진 문자열 리턴
- reduce로 a와 b concat -> 2. type 필터링 -> 3. 초기값으로 0을 주고 모든 수 reduce로 합산
필터링으로 type을 확인해주는구나!
학생의 정보가 담긴 객체를 요소로 갖는 배열을 입력받아 아래 조건에 맞게 변형된 배열 리턴
- filter로 여학생만 거름 -> 2. reduce로 총합을 구한 후 평균값을 구한 걸 필터링된 여학생들에게 mapping