Javascript

[Javascript] 다차원 배열 정렬 sort()

chsr 2020. 5. 12. 16:35
728x90
반응형

arrayobj.sort(sortFunction)

sort() : 배열 안의 원소를 정렬하는 함수

 *참고 - 정렬할 배열의 요소가 2개 미만일 경우 에러발생 (sort is not a function)

 

1. 문자정렬

var fruit = ['orange', 'apple', 'banana'];

/* 일반적인 방법 */
fruit.sort();  // apple, banana, orange

2. 숫자정렬

var score = [4, 11, 2, 10, 3, 1]; 

score.sort();  // 1, 10, 11, 2, 3, 4  ( ASCII 문자 순서로 정렬되어 숫자의 크기대로 나오지 않음 )

/* 오름차순 */
score.sort(function(a, b) { 
  return a - b; // 1, 2, 3, 4, 10, 11 
});

/* 내림차순 */
score.sort(function(a, b) { 
  return b - a; // 11, 10, 4, 3, 2, 1 
});



3. 객체(Object) 정렬

var student = [ 
  { name : "재석", age : 21}
  , { name : "광희", age : 25}
  , { name : "형돈", age : 13}
  , { name : "명수", age : 44} 
] 

/* 이름순으로 정렬 #오름차순 */
student.sort(function(a, b) { 
  return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;  // 광희, 명수, 재석, 형돈 
});

/* 이름순으로 정렬 #내림차순 */
student.sort(function(a, b) { 
  return a.name > b.name ? -1 : a.name < b.name ? 1 : 0;  // 형돈, 재석, 명수, 광희 
});


var sortingField = "age";

/* 나이순으로 정렬 #오름차순 */
student.sort(function(a, b) { 
  return a[sortingField] - b[sortingField];  // 13, 21, 25, 44 
});

/* 나이순으로 정렬 #내림차순 */
student.sort(function(a, b) { 
  return b[sortingField] - a[sortingField];  // 44, 25, 21, 13 
});

 

켈로그 시리얼 디스펜서 레드 + 리얼그래놀라 400g 세트, 1세트 오물조물얌얌 천연해물다시팩 100g, 3개입 모펙트 로얄 프로폴리스 탈모 샴푸 프리지아 베르가못향, 1L, 2개 액츠 파워젤 드럼용 액상세제 본품, 4.21L, 1개 필립스 SkinIQ 7000 시리즈 전기면도기, S7782/65, 미드나잇 블루 이지드롭 일회용 변기크리너 리필브러쉬 12p, 혼합 색상, 5개입 한우물 잡채볶음밥 (냉동), 300g, 6개

728x90
반응형