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 |