>  기사  >  웹 프론트엔드  >  Node.js는 Array.prototype.sort() 메소드를 사용하여 배열 객체를 정렬합니다.javascript 기술

Node.js는 Array.prototype.sort() 메소드를 사용하여 배열 객체를 정렬합니다.javascript 기술

WBOY
WBOY원래의
2016-05-16 16:17:321341검색

이 기사의 예에서는 js가 Array.prototype.sort()를 사용하여 배열 객체를 정렬하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

배열 객체 정렬에 대해 이야기할 때 먼저 Array.prototype.sort()를 간단히 살펴보겠습니다. 정렬 메소드는 하나의 매개변수(Function)를 허용합니다. 이 함수는 비교할 두 요소인 두 개의 매개변수를 제공합니다. 요소가 문자열 유형인 경우 숫자 유형인 경우 크기를 통해 비교됩니다. 값이 비교됩니다. 비교 함수가 1을 반환하면 두 요소의 위치가 0과 -1로 바뀌지 않습니다. 먼저 예를 살펴보겠습니다.

코드 복사 코드는 다음과 같습니다.
var arr = [3, 5, 2, 1] ;
// 작은 것부터 큰 것 순으로 정렬
arr.sort(함수 (a, b) {
a > b 1을 반환합니다: -1;
});
// 얻은 결과: [1, 2, 3, 5]

그럼 주제로 돌아가서 배열 객체를 정렬하는 경우 어떻게 작성해야 할까요? 실제로 원리는 위와 동일합니다.

코드 복사 코드는 다음과 같습니다.
var arr = [
{ a : 2, b : 3.2},
{ a : 3, b : 1.2},
{ a : 4, b : 2.2},
{ a : 6, b : 1.2},
{ a : 5, b : 3.2}
]
/// b 속성을 기준으로 작은 것부터 큰 것 순으로 정렬
arr.sort(함수(x, y){
x.b > y.b 반환 ?
});

x와 y는 arr의 요소, 즉 객체이므로 두 객체의 속성을 직접 비교하면 됩니다.

위의 예에서 가장 작은 요소에 중복이 있습니다. 요구 사항이 다음과 같은 경우 먼저 b 속성을 기준으로 작은 것부터 큰 것까지 정렬하고, 가장 작은 요소에 중복이 있는 경우 a 속성을 기준으로 정렬합니다. 써야 하나?

정렬할 때 먼저 b 속성을 기준으로 정렬합니다. x.b가 y.b보다 크면 x를 y의 오른쪽으로 이동합니다. x.b가 y.b와 같으면 x.a와 y.a를 비교하므로 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
arr.sort(function (x, y) {
If (x.b > y.b) {
1을 반환;
} else if (x.b === y.b) {
          x.a > 1 : -1;
} else if (x.b < y.b) {
         -1을 반환합니다.
}
})

이 기사가 모든 사람의 JavaScript 프로그래밍 설계에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.