본문 바로가기
프론트엔드/Javascript

[Javascript] 배열 Array API - sort()

by jinwanseo 2021. 2. 15.
728x90

자바스크립트 배열 Array API - sort()

 

array.sort();

 

[개념 이해]

 

array.sort() : 배열의 요소를 정렬한 후 반환 (주의 : 원본 배열 또한 정렬된다.)

단, 정렬기준은 전달되는 함수에 따라 달라진다.

 

샘플 예제 ↓

 

array.sort() 같은 경우에는

여러 가지 예제를 준비하였다,

 

1. 숫자 정렬

2. 문자열 정렬

 

[javascript : 숫자 정렬]

 

//배열 [Number] 정렬 
const arr = [1,10,2,9,3,8,4,7,5,6];

//오름차순
const upSorted = arr.sort((first,second)=>{
    //x,y 비교 후 x가 큰 경우 자리 바꾸기
    //why? 오름차순은 앞 숫자가 작아야함
    const x = first;
    const y = second;
    if(x > y) return 1;
    else if (x < y) return -1;
    else return 0;
});

console.log('-----오름차순 정렬-----');
console.log('반환된 배열 : ' + upSorted);
console.log('원본 배열 : ' + arr);

//내림차순
const downSorted = arr.sort((first,second)=>{
    //x, y 비교 후 y가 큰 경우 자리 바꾸기
    //why? 내림차순은 뒤 숫자가 작아야함
    const x = first;
    const y = second;
    if(x > y) return -1;
    else if (x < y) return 1;
    else return 0;
});

console.log('-----내림차순 정렬-----');
console.log('반환된 배열 : ' + downSorted);
console.log('원본 배열 : ' + arr);

 

[결과 출력]

 

-----오름차순 정렬-----
반환된 배열 : 1,2,3,4,5,6,7,8,9,10
원본 애열 : 1,2,3,4,5,6,7,8,9,10
-----내림차순 정렬-----
반환된 배열 : 10,9,8,7,6,5,4,3,2,1
원본 애열 : 10,9,8,7,6,5,4,3,2,1

 

[javascript : 문자열 정렬]

 

//배열 [String] 정렬

const animals = ['dog','cat','horse','bird','zebra'];

//오름차순
const upSorted = animals.sort((first,second)=>{
    //x,y 비교 후 x가 큰 경우 자리 바꾸기
    //왜 toUpperCase를 사용? 대소문자 섞여있을시에도
    //정렬에 영향을 주지 않기 위해서 
    const x = first.toUpperCase();
    const y = second.toUpperCase();

    if(x > y) return 1;
    else if(x < y) return -1;
    else return 0;
});

console.log('-----오름차순 정렬-----');
console.log('반환된 배열 : ' + upSorted);
console.log('원본 배열 : ' + animals);


//내림차순
const downSorted = animals.sort((first,second)=>{
    //x, y 비교 후 y가 큰 경우 자리 바꾸기
    const x = first;
    const y = second;
    if(x > y) return -1;
    else if (x < y) return 1;
    else return 0;
});

console.log('-----내림차순 정렬-----');
console.log('반환된 배열 : ' + downSorted);
console.log('원본 배열 : ' + animails);

 

[결과 출력]

 

-----오름차순 정렬-----
반환된 배열 : bird,cat,dog,horse,zebra
원본 배열 : bird,cat,dog,horse,zebra
-----내림차순 정렬-----
반환된 배열 : zebra,horse,dog,cat,bird
원본 배열 : zebra,horse,dog,cat,bird

 

728x90

댓글