스코어에서 JS의 리더 보드 정렬 사전으로

파비오 마가 렐리

이것은 아마도 고전적인 문제 일 것입니다. 각 플레이어의 점수 "사전"이 있습니다.

var scores = {
    'player1' : 9,
    'player2' : 3,
    'player3' : 7,
    'player4' : 5
}

나는 이것을 키, 플레이어 수와 값, 플레이어 이름으로 계산 된 위치를 사용하여 리더 보드로 변환하고 싶습니다.

var leaderboard = {
    1 : 'player1',
    2 : 'player3',
    3 : 'player4',
    4 : 'player2'
}

임시 목록과 사전을 너무 많이 엉망으로 만들지 않고 어떻게이 작업을 깔끔하게 수행 할 수 있습니까? 감사합니다.

닉 파슨스

리더 보드에 대한 순서를 얻기 위해 개체의 항목 (사용 Object.entries())과 항목 .sort()을 가져올 수 있습니다. 그런 다음 .map()정렬 된 항목을 사용 하여 개체에 매핑합니다. 여기서 개체의 값은 플레이어이고 항목의 인덱스 +1 ( i+1)은 키입니다. 그런 다음을 사용 Object.assign()하여이 배열에서 더 큰 개체를 만들 수 있습니다 .

const scores = {
    'player1' : 9,
    'player2' : 3,
    'player3' : 7,
    'player4' : 5
};

const leaderboard = Object.assign(
   {}, 
   ...Object.entries(scores)
       .sort(([,a], [,b]) => b-a)
       .map(([p], i) => ({[i+1]: p}))
);
console.log(leaderboard);

참고 : 필수 출력은 번호가 매겨진 연속 키가있는 개체입니다. 일반적으로 배열을 사용하여 이러한 유형의 데이터를 저장합니다. 여기서 위치 항목 0이 "상위"리더입니다. 배열 출력의 경우 위 코드를 다음과 같이 단순화합니다.

const scores = {
    'player1' : 9,
    'player2' : 3,
    'player3' : 7,
    'player4' : 5
};

const leaderboard = Object.entries(scores)
       .sort(([,a], [,b]) => b-a)
       .map(([p]) => p)

console.log(leaderboard);

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

리더 보드에서 가장 높은 코인에서 가장 낮은 코인으로 정렬

분류에서Dev

MySQL에서 리더 보드 정렬

분류에서Dev

Yii의 그리드보기에서 사용자 정의 열 정렬

분류에서Dev

머티리얼 UI 코어의 선택 드롭 다운 중앙에서 텍스트가 수직으로 정렬되지 않음

분류에서Dev

리더 보드를 높은 것부터 낮은 순서로 정렬

분류에서Dev

미리 정의 된 목록으로 사용되는 사이트 코어 드롭리스트에서 필드 값을 얻는 방법

분류에서Dev

git : 특정 커밋의 소스 코드를 병렬로보기

분류에서Dev

특정 값을 기준으로 Access 2003 보고서 필드의 필드 정렬

분류에서Dev

코드에서 해당 클래스의 인스턴스화를 위해 스토리 보드의 UITableViewController에 정의 된 프로토 타입 셀에 액세스

분류에서Dev

특정 리더 보드 중에서 선택하려는 의도

분류에서Dev

데이터 그리드보기에서 다른 유형으로 열 정렬

분류에서Dev

데이터 그리드보기에서 다른 유형으로 열 정렬

분류에서Dev

리더 보드 인 텍스트 파일을 5 개의 이름으로 제한하고 포인트 기준으로 정렬하려면 어떻게해야하나요?

분류에서Dev

Apache의 코드 302에 대한 정보, 어디로 리디렉션됩니까?

분류에서Dev

MuZero 의사 코드의 보상 값이 잘못 정렬되어 있습니까?

분류에서Dev

그리드 구성 요소 및 사용자 정의 정렬 리스너로 정렬

분류에서Dev

사용자 정의 정렬 필드별로 관리자의 분류 용어 테이블 정렬

분류에서Dev

어셈블리 코드가 포함 된 크로스 플랫폼 코드에 대해 델파이 사전 정의 조건 기호 사용

분류에서Dev

사용자 정의보기의 색상 속성을 Android의 드로어 블 모양으로 전달

분류에서Dev

Cloudkit.JS에서 타임 스탬프별로 레코드 정렬

분류에서Dev

Unity Switcher에서 특정 창으로 전환하기위한 사용자 정의 키보드 단축키

분류에서Dev

Unity Switcher에서 특정 창으로 전환하기위한 사용자 정의 키보드 단축키

분류에서Dev

공유 쿼리 폴더와 병렬로 TFS 2015에서 사용자 지정 폴더를 만드는 방법

분류에서Dev

코드 및 xaml에서 리소스 정의 및 사용

분류에서Dev

ExtJs 그리드 패널에서 사용자 지정 열 유형으로 정렬

분류에서Dev

새 인스턴스를 마지막 인스턴스보다 정확히 1 더 높이려면 어떻게해야합니까? (UML에서 Java 코드로)

분류에서Dev

사전 정의 된 검색으로 애플리케이션에서 Play 스토어를 열 수 있습니까?

분류에서Dev

내 스크랩 코드의 출력에서 정보 분리 (beautifulsoup + python)

분류에서Dev

LC3의 어셈블리 코드에서 정렬 알고리즘을 만드는 방법

Related 관련 기사

  1. 1

    리더 보드에서 가장 높은 코인에서 가장 낮은 코인으로 정렬

  2. 2

    MySQL에서 리더 보드 정렬

  3. 3

    Yii의 그리드보기에서 사용자 정의 열 정렬

  4. 4

    머티리얼 UI 코어의 선택 드롭 다운 중앙에서 텍스트가 수직으로 정렬되지 않음

  5. 5

    리더 보드를 높은 것부터 낮은 순서로 정렬

  6. 6

    미리 정의 된 목록으로 사용되는 사이트 코어 드롭리스트에서 필드 값을 얻는 방법

  7. 7

    git : 특정 커밋의 소스 코드를 병렬로보기

  8. 8

    특정 값을 기준으로 Access 2003 보고서 필드의 필드 정렬

  9. 9

    코드에서 해당 클래스의 인스턴스화를 위해 스토리 보드의 UITableViewController에 정의 된 프로토 타입 셀에 액세스

  10. 10

    특정 리더 보드 중에서 선택하려는 의도

  11. 11

    데이터 그리드보기에서 다른 유형으로 열 정렬

  12. 12

    데이터 그리드보기에서 다른 유형으로 열 정렬

  13. 13

    리더 보드 인 텍스트 파일을 5 개의 이름으로 제한하고 포인트 기준으로 정렬하려면 어떻게해야하나요?

  14. 14

    Apache의 코드 302에 대한 정보, 어디로 리디렉션됩니까?

  15. 15

    MuZero 의사 코드의 보상 값이 잘못 정렬되어 있습니까?

  16. 16

    그리드 구성 요소 및 사용자 정의 정렬 리스너로 정렬

  17. 17

    사용자 정의 정렬 필드별로 관리자의 분류 용어 테이블 정렬

  18. 18

    어셈블리 코드가 포함 된 크로스 플랫폼 코드에 대해 델파이 사전 정의 조건 기호 사용

  19. 19

    사용자 정의보기의 색상 속성을 Android의 드로어 블 모양으로 전달

  20. 20

    Cloudkit.JS에서 타임 스탬프별로 레코드 정렬

  21. 21

    Unity Switcher에서 특정 창으로 전환하기위한 사용자 정의 키보드 단축키

  22. 22

    Unity Switcher에서 특정 창으로 전환하기위한 사용자 정의 키보드 단축키

  23. 23

    공유 쿼리 폴더와 병렬로 TFS 2015에서 사용자 지정 폴더를 만드는 방법

  24. 24

    코드 및 xaml에서 리소스 정의 및 사용

  25. 25

    ExtJs 그리드 패널에서 사용자 지정 열 유형으로 정렬

  26. 26

    새 인스턴스를 마지막 인스턴스보다 정확히 1 더 높이려면 어떻게해야합니까? (UML에서 Java 코드로)

  27. 27

    사전 정의 된 검색으로 애플리케이션에서 Play 스토어를 열 수 있습니까?

  28. 28

    내 스크랩 코드의 출력에서 정보 분리 (beautifulsoup + python)

  29. 29

    LC3의 어셈블리 코드에서 정렬 알고리즘을 만드는 방법

뜨겁다태그

보관