Frontend Programming/Javascript

sort 함수

yoonstar* 2021. 2. 12. 13:55

sort() 함수

자바스크릡트 배열의 내장 함수에 배열 안의 원소를 정렬하는 sort() 함수가 존재

arr.sort([compareFunction])

 

매개변수 : compareFunction

compareFunction : 정렬 순서를 정의하는 함수

- 첫번째 인수가 두번째 인수보다 작을 경우 : 음수 (-) 첫번째 인수가 앞에 오도록

- 두 인수가 같을 경우 : 0

- 첫번째 인수가 두번째 인수보다 클 경우: 양수 (+) → 첫번째 인수가 뒤에 오도록

 

※ compareFunction 파라미터가 생략될 경우, 유니코드 순서에 따라 오름차순으로 정렬

 

반환값 

정렬된 배열 반환 (원본 배열이 정렬됨, 복사본 생성되는 것이 아님 주의!)

 

사용 예제

문자 정렬

var fruits=["banana", "apple", "grape"];

fruits.sort(); //["apple", "banana", "orange"]

 

숫자 정렬

var numbers=[3,1,2];

numbers.sort((a,b) => a-b); //오름차순 [1,2,3]

numbers.sort((a,b) => a-b); //내림차순 [3,2,1]

 

Object 정렬

var students=[
	{name: "alice", age: 25},
    {name: "hannah", age:12},
    {name: "branda", age: 14}
]

/*이름순으로 정렬*/

students.sort((a,b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);
/* 오름차순
0: {name: "alice", age: 25}
1: {name: "branda", age: 14}
2: {name: "hannah", age: 12} */
      
students.sort((a,b) => a.name > b.name ? -1 : a.name < b.name ? 1 : 0);
/* 내림차순
0: {name: "hannah", age: 12}
1: {name: "branda", age: 14}
2: {name: "alice", age: 25} */


/*나이순으로 정렬*/
students.sort((a,b)=>a.age-b.age); //오름차순
students.sort((a,b)=>b["age"] - a["age"]); //내림차순 
   

 

 

[References] 

dudmy.net/javascript/2015/11/16/javascript-sort/

'Frontend Programming > Javascript' 카테고리의 다른 글

안티패턴  (0) 2021.03.02
자바스크립트 비동기 처리  (0) 2021.02.18
JSON  (0) 2021.02.12
random으로 값 가져오기  (0) 2021.02.11
classList  (0) 2021.02.07