DBILITY

javascript array sort exercise 본문

front-end & ui/javascript

javascript array sort exercise

DBILITY 2021. 10. 19. 17:54
반응형

Array.sort([compareFunction]) 형태

compareFunction은 optional로 제공되지 않으면 요소를 문자열로 변환,유니코드 코드포인트 순서로 비교하여 정렬한다.

Array의 복사본을 정렬하는 것이 아닌 원본이 변경됨에 유의하자.

compareFunction(a,b) 일때 a와 b의 차를 구하고 음수일 경우 a를 낮은 순서로 0일 경우 변경하지 않으며, 양수일 경우 b를 낮은 순서로 정렬한다. 다음과 같이 사용하며 만약 요소 a, b가 object일 경우 object내의 정렬기준이 될 속성을 명시해야한다.

compareFunction(a,b) {
	return a-b
}
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;
});

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

 

Array.prototype.sort() - JavaScript | MDN

sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다. 정렬은 stable sort가 아닐 수 있습니다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다.

developer.mozilla.org

 

localCompare를 쓰자

http://www.devdic.com/javascript/reference/native/method:1379/localeCompare() 

 

localeCompare()::JavaScript 레퍼런스

인수로 지정된 문자열이 정렬상 string 객체의 문자열 뒤에 있으면 음수, 그 반대의 경우는 양수, 동등한 경우에는 0을 반환한다.

www.devdic.com

Intl.collator도 쓰자

https://runebook.dev/ko/docs/javascript/global_objects/intl/collator

 

JavaScript - Intl.Collator 개체를 사용하면 언어 구분 문자열 비교가 가능합니다.

Documentation Contributors History

runebook.dev

성능비교는 검색을 통해서~

반응형
Comments