>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 여러 필드를 사용하여 개체 배열을 정렬하려면 어떻게 해야 합니까?

JavaScript에서 여러 필드를 사용하여 개체 배열을 정렬하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-25 18:37:10686검색

How can I sort an array of objects using multiple fields in JavaScript?

객체 배열의 다중 필드 정렬

객체 배열 내 여러 필드를 기반으로 정렬이 필요한 경우, 체인 정렬 접근 방식을 채택할 수 있습니다. 이 방법에는 0이 아닌 차이가 나올 때까지 각 필드의 값을 순서대로 비교하는 작업이 포함됩니다.

구현

다음 객체 배열을 고려하세요.

var homes = [
    {"h_id":"3", "city":"Dallas", "state":"TX", "zip":"75201", "price":"162500"},
    {"h_id":"4", "city":"Bevery Hills", "state":"CA", "zip":"90210", "price":"319250"},
    {"h_id":"6", "city":"Dallas", "state":"TX", "zip":"75000", "price":"556699"},
    {"h_id":"5", "city":"New York", "state":"NY", "zip":"00010", "price":"962500"}
];

도시(오름차순), 가격(내림차순)을 기준으로 이 배열을 정렬하려면 다음 정렬을 사용하세요. 함수:

data.sort(function (a, b) {
    return a.city.localeCompare(b.city) || b.price - a.price;
});

설명

정렬 함수는 콜백을 인수로 사용하여 두 개체 a와 b를 비교합니다. 요소의 순서를 결정하는 값을 반환합니다.

  • a.city.localeCompare(b.city)가 0보다 작으면 a가 b 앞에 배치됩니다.
  • If a.city.localeCompare(b.city)가 0보다 크면 b가 a 앞에 배치됩니다.
  • a.city.localeCompare(b.city)는 0과 같습니다. b.price - a.price는 가격을 비교하는 데 사용됩니다. 양수 값은 a 앞에 b를 배치하고, 음수 값은 b 앞에 a를 배치합니다.

출력 예

정렬 후 주택 배열은 다음과 같이 재배열됩니다. :

[{
    "h_id": "3",
    "city": "Dallas",
    "state": "TX",
    "zip": "75201",
    "price": "162500"
},
{
    "h_id": "6",
    "city": "Dallas",
    "state": "TX",
    "zip": "75000",
    "price": "556699"
},
{
    "h_id": "4",
    "city": "Bevery Hills",
    "state": "CA",
    "zip": "90210",
    "price": "319250"
},
{
    "h_id": "5",
    "city": "New York",
    "state": "NY",
    "zip": "00010",
    "price": "962500"
}]

위 내용은 JavaScript에서 여러 필드를 사용하여 개체 배열을 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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