개발Story
Published 2022. 6. 7. 17:17
[javascript] sort 함수. Javascript/문법

javascript에는 배열요소를 정렬을 해주는 sort함수가 있다.

 

sort의 사전전 의미는 "v : 분류하다. 구분하다. 정리하다. "이다.

 

Array.prototype.sort()

 

구문 : arr.sort([compareFunction])

 

예제 :  오름차순으로 정렬

var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
  return a - b;
});
console.log(numbers);

// [1, 2, 3, 4, 5]

개체 속성으로 정렬

var items = [
  { name: 'Edward', value: 21 },
  { name: 'Sharpe', value: 37 },
  { name: 'And', value: 45 },
  { name: 'The', value: -12 },
  { name: 'Magnetic', value: 13 },
  { name: 'Zeros', value: 37 }
];

// value 기준으로 정렬
items.sort(function (a, b) {
  if (a.value > b.value) {
    return 1;
  }
  if (a.value < b.value) {
    return -1;
  }
  // a must be equal to b
  return 0;
});

// name 기준으로 정렬
items.sort(function(a, b) {
  var nameA = a.name.toUpperCase(); // ignore upper and lowercase
  var nameB = b.name.toUpperCase(); // ignore upper and lowercase
  if (nameA < nameB) {
    return -1;
  }
  if (nameA > nameB) {
    return 1;
  }

  // 이름이 같을 경우
  return 0;
});

 

map을 활용한 정렬.

// 소트 할 배열
var list = ['Delta', 'alpha', 'CHARLIE', 'bravo'];

// 임시 배열은 위치 및 정렬 값이있는 객체를 보유합니다.
var mapped = list.map(function(el, i) {
  return { index: i, value: el.toLowerCase() };
})

// 축소 치를 포함한 매핑 된 배열의 소트
mapped.sort(function(a, b) {
  return +(a.value > b.value) || +(a.value === b.value) - 1;
});

// 결과 순서를 위한 컨테이너
var result = mapped.map(function(el){
  return list[el.index];
});

 

출처 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

'Javascript > 문법' 카테고리의 다른 글

[javascript] optional chaining(?)  (0) 2022.08.28
[javascript] scroll event(등록, 삭제)  (0) 2022.07.31
[Javascript] Slice, Splice, Split  (0) 2022.05.07
[javascript ES6] reduce(누산기)  (0) 2022.04.23
[Javascript ES6] join  (0) 2022.04.02
profile

개발Story

@슬래기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!