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