일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 빅데이터
- 2
- 프로그래밍
- 소프트웨어
- 인공지능
- 자료구조
- 컴퓨터비전
- 딥러닝
- 네트워크
- 웹개발
- I'm Sorry
- 소프트웨어공학
- 자바스크립트
- 버전관리
- 파이썬
- 사이버보안
- 프로그래밍언어
- 코딩
- 컴퓨터공학
- 데이터베이스
- 데이터과학
- 알고리즘
- 보안
- 컴퓨터과학
- 데이터구조
- 머신러닝
- Yes
- 네트워크보안
- 데이터분석
- 클라우드컴퓨팅
- Today
- Total
스택큐힙리스트
객체 배열에서 문자열 속성 값에 따라 정렬하십시오. 본문
저는 자바스크립트 객체 배열을 가지고 있습니다.
var objs = [
{ first_nom: 'Lazslo', last_nom: 'Jamf' },
{ first_nom: 'Pig', last_nom: 'Bodine' },
{ first_nom: 'Pirate', last_nom: 'Prentice' }
];
JavaScript에서 #$^&*! $! $&의 값을 기준으로 정렬하는 방법은 무엇인가요?
나는 sort(a,b) 에 대해 알고 있지만, 이는 문자열과 숫자에만 작동하는 것 같다. 내 객체에 toString() 메소드를 추가해야 할까?
답변 1
당신만의 비교 함수를 작성하는 것은 충분히 쉽습니다.
function compare( a, b ) {
if ( a.last_nom < b.last_nom ){
return -1;
}
if ( a.last_nom > b.last_nom ){
return 1;
}
return 0;
}
objs.sort( compare );
또는 인라인 ( c/o Marco Demaio ):
objs.sort((a,b) => (a.last_nom > b.last_nom) ? 1 : ((b.last_nom > a.last_nom) ? -1 : 0))
한국어로 번역해주세요.
숫자로 간단하게 ( c/o Andre Figueiredo ):
objs.sort((a,b) => a.last_nom - b.last_nom); // b - a for reverse sort
답변 2
배열의 객체를 문자열 속성값으로 정렬하는 방법
자바스크립트에서는 배열 내 자바스크립트 객체의 속성값을 기준으로 정렬하는 방법이 매우 쉽게 제공됩니다. 이를 사용해 보다 가독성 좋은 코드를 작성할 수 있습니다.
먼저 정렬하고자 하는 속성값이 포함된 객체 배열을 생성합니다. 그 다음 Array.sort() 메서드를 호출하고, 정렬에 사용될 비교 함수를 인자로 전달합니다. 이 함수는 각 객체의 속성값을 비교하여 정렬 기준을 결정합니다.
객체 배열을 문자열 속성값을 기준으로 정렬하는 경우, 비교 함수는 다음과 같이 작성할 수 있습니다.
```
function compare(a, b) {
const propertyA = a.stringProperty.toUpperCase();
const propertyB = b.stringProperty.toUpperCase();
let comparison = 0;
if (propertyA > propertyB) {
comparison = 1;
} else if (propertyA < propertyB) {
comparison = -1;
}
return comparison;
}
arrayOfObjects.sort(compare);
```
이 경우, 객체의 stringProperty 값을 대문자로 변환하여 비교합니다. 비교 결과가 양수일 경우 A 객체가 B 객체보다 우선순위가 높다고 간주되며, 음수일 경우 A 객체가 B 객체보다 우선순위가 낮다고 간주됩니다.
이렇게 작성된 비교 함수를 사용하여 객체 배열을 문자열 속성값으로 정렬할 수 있습니다. 정렬 결과를 활용하면 보다 직관적이고 가독성 좋은 코드를 작성할 수 있으므로, 이러한 기법을 적극 활용하는 것이 좋습니다.