티스토리 뷰
728x90
SMALL
sort
sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다. 정렬은 stable sort가 아닐 수 있습니다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다.
정렬 속도와 복잡도는 각 구현방식에 따라 다를 수 있습니다.
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"]
const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]
위와 같이 숫자는 앞에 오는 숫자를 기준으로 정렬됩니다. 만약 작은수부터(큰수부터) 정렬을 하기 원한다면 아래와 같이
코드를 짜야합니다.
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers);
// [1, 2, 3, 4, 5]
numbers.sort(function(a, b) {
return b - a;
});
console.log(numbers);
// [5, 4, 3, 2, 1]
개체는 해당 속성 중 하나의 값을 기준으로 정렬 할 수 있습니다.
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) ? 1 : -1;
// 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
728x90
LIST
'자바스크립트' 카테고리의 다른 글
자바스크립트 배열 메소드3(assisgn, concat, forEach, filter, join, index of) (0) | 2020.07.03 |
---|---|
es6 문법 저장용(json api 가져올때) (0) | 2020.06.30 |
자바스크립트 배열 메소드1(slice, splice, split) (0) | 2020.06.27 |
자바스크립트 map함수 (0) | 2020.06.25 |
자바스크립트 var, let, const (0) | 2020.06.25 |
댓글
공지사항