Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- MSSQL
- window
- SSL
- SPC
- Sqoop
- IntelliJ
- Kotlin
- 보조정렬
- plugin
- xPlatform
- NPM
- es6
- react
- Android
- table
- Spring
- vaadin
- R
- GIT
- tomcat
- Eclipse
- 공정능력
- JavaScript
- SQL
- Express
- Python
- mybatis
- Java
- hadoop
- mapreduce
Archives
- 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
localCompare를 쓰자
http://www.devdic.com/javascript/reference/native/method:1379/localeCompare()
Intl.collator도 쓰자
https://runebook.dev/ko/docs/javascript/global_objects/intl/collator
성능비교는 검색을 통해서~
반응형
'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 |
Comments