[JavaScript] 고차함수

Parkboss·2022년 3월 22일
0

JavaScript

목록 보기
21/29
post-thumbnail

고차함수


sort( )문제와 한계점

"4" > "10" -> 문자열로 비교했을때 실제 4 > 1여서 실제 10이 4보다 앞에 오게된다.


sort( )고차함수 - 1

reverse 는 callback 함수를 받지않고 sort만 받는다.
1. let ascending_order = function ( x, y ) x = 1 , y = -1 일때
1-(-1) > 0 --> x, y가 0보다 크다. 그럼 x, y 위치가 바뀐다.
return x - y > 0 값이면 x, y의 정렬이 바뀐다. 즉, x에 작은 숫자가 위치한다.
여기서! x = -1, y = 4일때 -1-4 > 0 --> -3 > 0 이라는 음수가 나온다. -1과 4의 정렬을 바꾸지 않는다.

2. let descending_order = function ( y - x ) x = 20, y = 12 일때 20 - 12= 8의 양수가 나와서 두 수는 정렬이 바뀐다.
즉, y에 큰 숫자가 위치한다.

3. 양수, 음수 반환을 통해서 callback(ascending,descending) 함수를 계산하고 그 함수를 sort 매개변수로 넣어서 자료형에 따라 의도에 맞게 정렬한다.


sort( )고차함수 - 2

1. if (x > y) return 1; -> x가 y보다 크면 return 1을 해서 자리 바꿈을 한다.
["apple", "melon", "Orange", "orange"] -> 내부적으로 모두 대문자로 변환되어 a -> m -> o 순으로 오름차순 정렬이 된다.
2. if (x < y) return 1; -> y가 x보다 크면 return 1을 해서 자리 바꿈을 한다.
["Orange", "orange", "apple", "melon",] -> 큰 값이 앞으로 위치하면서 내림차순 정렬이 된다.


sort( )고차함수 - 3

let ascending_order = function ( x , y ) { return x > y ? 1 : -1; } -->
1은 x > y 보다 작을 경우 x와 y 위치 변경 (오름차순)
let descending_order = function ( x , y ) { return x < y ? 1 : -1; } -->
y가 클때 더 큰값이 앞으로 위치 변경 (내림차순)


forEach


map( )


find( )


filter( )


reduce( )

profile
ur gonna figure it out. just like always have.

0개의 댓글