임의 정렬: Array.sort(callback funtion)
반복 작업: Array.forEach()
콜백함수 결과 배열 반환: Array.map()
조건 만족하는 하나의 값 반환: Array.find()
조건 만족하는 값 배열로 반환: Array.filter()
누적 결과 값 반환: Array.reduce()
// Number, String 정렬을 할 때 String으로 변환되어 4와 10을 문자열 기준으로 바꾼다.
// 단순 4와 10을 4 1로 판단하여 10이 앞으로 오게된다.
let nums = [1, -1, 4, 0, 2, 3, 10, 20, 12];
console.log(nums.sort());
// output: [-1, 0, 1, 10, 12, 2, 20, 3, 4]
// 10이 중간에 들어오게된다
console.log(nums.reverse());
// output: [4, 3, 20, 2, 12, 10, 1, 0, -1]
let fruits = ["apple", "Orange", "orange", "melon"];
// 대문자가 소문자보다 큰값으로 적용된다.
console.log(fruits.sort());
// output: ['Orange', 'apple', 'melon', 'orange']
console.log(fruits.reverse());
// output: ['orange', 'melon', 'apple', 'Orange']
let nums = [1, -1, 4, 0, 2, 3, 10, 20, 12];
console.log(nums.sort());
// output: [-1, 0, 1, 10, 12, 2, 20, 3, 4]
// 10이 중간에 들어오게된다
console.log(nums.reverse());
// output: [4, 3, 20, 2, 12, 10, 1, 0, -1]
let ascending_order = function (x, y){
// 콜백함수를 사용하여 정렬을 바꿔준다.
return x-y;
// x 1 y -1일때 연산을하게 되면 1-1 0 0보다 큰 값이 되어 둘의 위치를 바꿔주게 된다.
// 또 -1 4를 비교했을 때 음수가 나오게 되기 때문에 변하지 않는다.
};
let ascending_order = function (x, y){
return y-x;
// x가 12 y 20일때 연산을 하면 20 - 12 = 8로 양수가 나오기 때문에
// 두 수의 위치를 바꿔준다
};
let ascending_order = function(x, y){
x = x.toUpperCase();
y = y.toUpperCase(); // 대문자로 모두 치환한후 연산
if (x > y) // 오름차순 x가 y보다 크면 자리를 바꿔주고
return 1;
else if (y > x) // y가 x보다 크다면 뒤로
return -1;
else
return 0;
};
let descending_order = function(x, y){
x = x.toUpperCase();
y = y.toUpperCase();
if (x < y) //
return 1;
else if (y < x)
return -1;
else
return 0;
};
let fruits = ["apple", "Orange", "orange", "melon"];
console.log(fruits.sort(ascending_order));
// output: ['apple', 'melon', 'Orange', 'orange']
console.log(fruits.sort(descending_order));
// output: ['Orange', 'orange', 'melon', 'apple']