한 번에 날짜 및 시간별로 객체 배열을 정렬하는 방법

루카도 날로이 아

안녕하세요, 다음과 같은 개체 배열을 정렬하는 데 도움이 필요합니다.

[
    {
        "jobID": "202012101329yXHTXvqg",
        "jobDate": "12-10-2020",
        "jobStart": "13:29:26",
        "jobEnd": "13:31:58"
    },
    {
        "jobID": "2020121013290Yyjny8x",
        "jobDate": "12-10-2020",
        "jobStart": "13:29:58",
        "jobEnd": "13:30:36"
    },
    {
        "jobID": "202011120928w28NDLQVu",
        "jobDate": "12-11-2020",
        "jobStart": "09:28:09",
        "jobEnd": "09:28:25"
    },
    {
        "jobID": "202011120927afObyUv8",
        "jobDate": "12-11-2020",
        "jobStart": "09:27:42",
        "jobEnd": "09:27:58"
    }
]

jobDate 및 jobEnd별로 desc 순서로 정렬하고 싶습니다.

[
    {
        "jobID": "202011120928w28NDLQVu",
        "jobDate": "12-11-2020",
        "jobStart": "09:28:09",
        "jobEnd": "09:28:25"
    },
    {
        "jobID": "202011120927afObyUv8",
        "jobDate": "12-11-2020",
        "jobStart": "09:27:42",
        "jobEnd": "09:27:58"
    },
    {
        "jobID": "202012101329yXHTXvqg",
        "jobDate": "12-10-2020",
        "jobStart": "13:29:26",
        "jobEnd": "13:31:58"
    },
    {
        "jobID": "2020121013290Yyjny8x",
        "jobDate": "12-10-2020",
        "jobStart": "13:29:58",
        "jobEnd": "13:30:36"
    }
]

다양한 방법을 사용해 보았지만 하나의 값으로 만 정렬 할 수 있습니다. 대신 한 번에 두 개의 값 (jobsDate 및 jobsEnd)으로 정렬해야합니다. 이 문제를 어떻게 처리 하시겠습니까?

피터 셀리 거

항상 내림차순 으로 두 항목 s 를 처음에 비교하고 두 날짜가 동일한 경우 두 항목의 값을 계속 비교 하는 ( sort ) 함수 를 작성하면 됩니다.jobDatejobEnd

jobDate하나의 경우에는 각 값을 Date전달하기 전에 유효하게 유형 으로 변환 compareDescending하거나 MM-DD-YYYYto YYYY-MM-DD(현재 사용 사례) 에서 직접 비교를 위해 형식을 다시 지정해야합니다 .

형식이 시간 단위 로 제공 되기 때문에 각각의 두 문자열 값을 jobEnd통해 직접 비교할 수 있습니다 .compareDescendinghh:mm:ss24

function sanitizeDateFormat(str) {
  const [month, day, year] = str.split('-');
  return [year, month, day].join('-');
}
function compareDescending(a, b) {
  return ((a > b) && -1) || ((a < b) && 1) || 0;
}

function compareJobsByDateAndEndTime(a, b) {
  return compareDescending(

    // new Date(a.jobDate),
    // new Date(b.jobDate)
    sanitizeDateFormat(a.jobDate),
    sanitizeDateFormat(b.jobDate)

  ) || compareDescending(

    a.jobEnd,
    b.jobEnd
  );
}

console.log([{
  "jobID": "2020121013290Yyjny8x",
  "jobDate": "12-10-2020",
  "jobStart": "13:29:58",
  "jobEnd": "13:30:36"
}, {
  "jobID": "202012101329yXHTXvqg",
  "jobDate": "12-10-2020",
  "jobStart": "13:29:26",
  "jobEnd": "13:31:58"
}, {
  "jobID": "202011120927afObyUv8",
  "jobDate": "12-11-2020",
  "jobStart": "09:27:42",
  "jobEnd": "09:27:58"
}, {
  "jobID": "202011120928w28NDLQVu",
  "jobDate": "12-11-2020",
  "jobStart": "09:28:09",
  "jobEnd": "09:28:25"
}].sort(compareJobsByDateAndEndTime));
.as-console-wrapper { min-height: 100%!important; top: 0; }

편집하다

무슨 일인지 설명해 주시겠습니까? ((a > b) && -1) || ((a < b) && 1) || 0– 루카 도널 로이 아

기본적 으로 오름차순에 대한 비교를 수행하는 비교기 함수 는 첫 번째 인수가 두 번째 값보다 "큰" 값인 경우 0보다 큰 값을 반환 할 것으로 예상됩니다 . 마찬가지로 첫 번째 인수가 두 번째 인수에 비해 사소함 을 나타내는 0보다 낮은 반환 값 을 사용합니다. 반환 값 0 은 두 인수의 순서 / 시퀀스가 ​​같음을 나타냅니다. 내림차순으로 정렬하는 데 도움이되는 비교기는 보다 크 거나 작은에 대한 반환 값을 뒤집어 야합니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

순수한 Javascript로 JSON 데이터에서 객체 중복을 제거하고 JSON 객체 내의 날짜 정보로 정렬하는 방법

분류에서Dev

객체 배열에서 고유 한 날짜 값을 가져 오는 방법

분류에서Dev

변경 입력 [type = "radio"]에서 상태 번호, 날짜 및 시간별로 목록을 정렬하는 방법은 무엇입니까?

분류에서Dev

날짜 및 시간을 기준으로 Symfony에서 개체 배열 정렬

분류에서Dev

Javascript 객체 배열을 날짜별로 정렬하는 방법은 무엇입니까?

분류에서Dev

날짜별로 객체 배열 필터링 및 정렬

분류에서Dev

중첩 된 개체 배열을 날짜별로 정렬하는 방법

분류에서Dev

문자열 배열에서 날짜 시간을 정렬하는 방법 PHP

분류에서Dev

날짜별로 쿼리를 정렬 및 그룹화하고 Laravel에서 배열로 그룹화하는 방법

분류에서Dev

날짜 및 시간별로 jsonarray 데이터를 정렬하고 목록보기 어댑터에 넣는 방법

분류에서Dev

한 번에 로컬 알림에서 날짜 배열을 fireDate로 설정하는 방법

분류에서Dev

날짜별로 객체 배열 정렬

분류에서Dev

정확한 날짜 및 시간에 스트리밍 연결을 끊는 방법

분류에서Dev

정확한 날짜 및 시간에 스트리밍 연결을 끊는 방법

분류에서Dev

날짜별로 정렬 한 다음 날짜 내에서 셔플하는 방법

분류에서Dev

날짜 및 시간 문자열에서 자바 스크립트 날짜 개체를 생성하는 방법

분류에서Dev

범주 및 무한 하위 범주별로 개체 배열을 정렬하는 가장 좋은 방법

분류에서Dev

배열을 배열 내에서 객체로 변환하는 방법-Angular 및 Javascript

분류에서Dev

우편 배달부 요청에 대한 미래 날짜 및 시간을 생성하는 방법

분류에서Dev

PHP에서 날짜 및 시간별로 이메일 알림을 보내는 방법은 무엇입니까?

분류에서Dev

객체 값을 연속으로 두 번 사용하여 객체 배열을 정렬하는 방법

분류에서Dev

PHP-날짜 시간 및 별도의 날짜로 배열 정렬

분류에서Dev

Django의 클래스 기반 뷰에서 날짜별로 개체 정렬을 수정하는 방법

분류에서Dev

여러 상속 객체의 배열을 날짜별로 정렬

분류에서Dev

날짜 및 시간이 포함 된 팬더 열-정렬하는 방법?

분류에서Dev

기존 java.util.Date 객체 별도로 시간과 날짜 부분을 얻는 방법

분류에서Dev

SQL에서 날짜 및 시간을 필터링하는 방법

분류에서Dev

SQL에서 날짜 및 시간을 필터링하는 방법

분류에서Dev

객체 배열에서 선택한 객체를 하나의 객체 배열로 푸시하는 방법

Related 관련 기사

  1. 1

    순수한 Javascript로 JSON 데이터에서 객체 중복을 제거하고 JSON 객체 내의 날짜 정보로 정렬하는 방법

  2. 2

    객체 배열에서 고유 한 날짜 값을 가져 오는 방법

  3. 3

    변경 입력 [type = "radio"]에서 상태 번호, 날짜 및 시간별로 목록을 정렬하는 방법은 무엇입니까?

  4. 4

    날짜 및 시간을 기준으로 Symfony에서 개체 배열 정렬

  5. 5

    Javascript 객체 배열을 날짜별로 정렬하는 방법은 무엇입니까?

  6. 6

    날짜별로 객체 배열 필터링 및 정렬

  7. 7

    중첩 된 개체 배열을 날짜별로 정렬하는 방법

  8. 8

    문자열 배열에서 날짜 시간을 정렬하는 방법 PHP

  9. 9

    날짜별로 쿼리를 정렬 및 그룹화하고 Laravel에서 배열로 그룹화하는 방법

  10. 10

    날짜 및 시간별로 jsonarray 데이터를 정렬하고 목록보기 어댑터에 넣는 방법

  11. 11

    한 번에 로컬 알림에서 날짜 배열을 fireDate로 설정하는 방법

  12. 12

    날짜별로 객체 배열 정렬

  13. 13

    정확한 날짜 및 시간에 스트리밍 연결을 끊는 방법

  14. 14

    정확한 날짜 및 시간에 스트리밍 연결을 끊는 방법

  15. 15

    날짜별로 정렬 한 다음 날짜 내에서 셔플하는 방법

  16. 16

    날짜 및 시간 문자열에서 자바 스크립트 날짜 개체를 생성하는 방법

  17. 17

    범주 및 무한 하위 범주별로 개체 배열을 정렬하는 가장 좋은 방법

  18. 18

    배열을 배열 내에서 객체로 변환하는 방법-Angular 및 Javascript

  19. 19

    우편 배달부 요청에 대한 미래 날짜 및 시간을 생성하는 방법

  20. 20

    PHP에서 날짜 및 시간별로 이메일 알림을 보내는 방법은 무엇입니까?

  21. 21

    객체 값을 연속으로 두 번 사용하여 객체 배열을 정렬하는 방법

  22. 22

    PHP-날짜 시간 및 별도의 날짜로 배열 정렬

  23. 23

    Django의 클래스 기반 뷰에서 날짜별로 개체 정렬을 수정하는 방법

  24. 24

    여러 상속 객체의 배열을 날짜별로 정렬

  25. 25

    날짜 및 시간이 포함 된 팬더 열-정렬하는 방법?

  26. 26

    기존 java.util.Date 객체 별도로 시간과 날짜 부분을 얻는 방법

  27. 27

    SQL에서 날짜 및 시간을 필터링하는 방법

  28. 28

    SQL에서 날짜 및 시간을 필터링하는 방법

  29. 29

    객체 배열에서 선택한 객체를 하나의 객체 배열로 푸시하는 방법

뜨겁다태그

보관