일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Android
- xPlatform
- 보조정렬
- Spring
- Eclipse
- tomcat
- SQL
- hadoop
- mybatis
- Python
- IntelliJ
- Express
- MSSQL
- GIT
- es6
- SPC
- SSL
- Java
- table
- Sqoop
- NPM
- mapreduce
- plugin
- 공정능력
- react
- R
- vaadin
- JavaScript
- window
- Kotlin
- Today
- Total
DBILITY
javascript array sort exercise 본문
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
성능비교는 검색을 통해서~
'front-end & ui > javascript' 카테고리의 다른 글
javascript es6(es2015) spread operator, function apply, call, bind (0) | 2021.10.28 |
---|---|
javascript deep copy (0) | 2021.10.25 |
kendogrid auto scroll to row and select (0) | 2021.09.28 |
javascript currency number format (0) | 2021.08.06 |
div move + rotate + resize test (0) | 2021.05.20 |