[Javascript] Array 오브젝트 (3) - sort 알고리즘, reverse(), 문제풀이 (ES3)

newsilver·2021년 6월 1일
0

Javascript

목록 보기
3/16
post-thumbnail

1. sort 알고리즘

var arr = [101, 26, 7, 1234];
arr.sort(function(one, two){
  return one-two;
});
console.log(arr)
/*
1. sort() 파라미터의 function(){}을 호출하면서 101과 26을 파라미터 값을 넘김.
101이 one에, 26이 two에 설정

2. one(101) - two(26)의 결과는 양수이며 이 값을 반환한다.
3. 이때, 0보다 큰 값이 반환되면 배열에서 값의 위치를 바꿈.
   [26, 101, 7, 1234]가 된다.
   
4. 다시 콜백 함수를 호출하면서 101과 7을 넘겨줌.
   one(101) - two(7)의 결과는 양수이며 0보다 큰 값을 반환
5. 반환 값이 0보다 크므로 배열에서 값의 위치를 바꾼다.
   [26, 있다 7, 101, 1234]
   
6. 다시 함수를 호출하면서 101과 1234를 넘겨줌.
   one(101) - tww(1234)의 결과는 음수이며 0보다 작은 값을 반환
7. 반환 값이 0보다 작거나 같으면 배열에서 값의 위치 변경 ✕
   [26, 7, 101, 1234]
   
8. 다시 처음으로 돌아가 바뀌는 것이 없을 때까지 배열의 엘리먼트 위치를 조정한다.
*/

[실행 결과]
[7, 26, 101, 1234]

2. reverse()

구분데이터 (값)
data대상
파라미터사용하지 않음
반환결과
// 배열의 엘리먼트 위치를 역순으로 바꿈
// 🚨 엘리먼트 값이 아닌 인덱스 기준
// 대상 배열도 바뀜
var arr = [1, 3, 7, 5];
console.log(arr.reverse());

[실행 결과]
[5, 7, 3, 1]

3. 문제 풀이

✏️ 요구사항

var arr = [101, 26, 7, 1234];
배열의 엘리먼트 값을 역순으로 정렬하세요.

✏️ 힌트

sort() 메소드는 역순 정렬 제공하지 않음.
sort() 메소드의 콜백 함수를 사용하여 역순으로 정렬할 수 있음.

✏️ 풀이 (정답 ❌)

var arr = [101, 26, 7, 1234];
        arr.sort(function(one,two){
            return two-one;
        });
        console.log(arr);


✏️ 문제 출처

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EB%B9%84%EA%B8%B0%EB%84%88/dashboard

profile
이게 왜 🐷

0개의 댓글