Javascript
고차함수 - sort()(숫자)
자라나라나무나무나
2022. 5. 26. 13:44
let nums = [ 1, -1, 4, 0, 10, 20, 12];
console.log(nums.sort());
console.log(nums.reverse());
let ascending_order = function(x,y) {
return x - y;
};
let descending_order = function(x,y) {
return y - x;
};
console.log(nums.sort(ascending_order));
console.log(nums.sort(descending_order));
예를들어,
ascending_order 함수에서 20과 12를 비교한다고 가정해보자 함수의 매개변수에 따라 x=20, y=12가 된다.
x - y 는 20 - 12가 되고 결과는 8이 된다.
8은 0보다 큰 값이기 때문에 순서가 12 20 이렇게 바뀌게 된다.
0보다 큰 값이면 자리가 바뀌고
0보다 작은 값이면 숫자의 자리는 변하지 않는다.
let ascending_order = function(x, y) {
if(typeof x === "string") x = x.toUpperCase();
if(typeof y === "string") y = y.toUpperCase();
return x > y ? 1 : -1;
};
let descending_order = function(x, y) {
if(typeof x === "string") x = x.toUpperCase();
if(typeof y === "string") y = y.toUpperCase();
return x < y ? 1: -1;
}
let nums = [ 1, -1, 4, 10, 20, 12]; // case 1
let fruits = ["apple", "Orange", "orange", "melon"]; // case 2
console.log(nums.sort(ascending_order));
console.log(nums.sort(ascending_order));
console.log(fruits.sort(ascending_order));
console.log(fruits.sort(descending_order));