• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Jak sortować dane w tablicy?

Object Storage Arubacloud
–1 głos
299 wizyt
pytanie zadane 13 lipca 2020 w JavaScript przez niezalogowany
zamknięte 13 lipca 2020
{
  "51234123464": 15,
  "66362435234": 11,
  "73735757687": 14,
  "235234523456": 13,
  "75870975456": 19,
  "75476844885": 12,
  "83798774445": 17
}

Tworze aplikacje z TOP20 osobami z najwyższą liczbą reputacji. Dane w stringu to identyfikatory użytkowników.

komentarz zamknięcia: pomoc udzielona

1 odpowiedź

0 głosów
odpowiedź 13 lipca 2020 przez DawidK Nałogowiec (37,910 p.)
wybrane 13 lipca 2020
 
Najlepsza

Za pomocą entries() możesz otrzymać tablice zawierającą pary klucz (w twoim przypadku id) i wartość (reputacja), póżniej możesz przesortować tą tablice za pomocą sort() według rankingu (index 1 w tablicy).

        const data = {
            "51234123464": 15,
            "66362435234": 11,
            "73735757687": 14,
            "235234523456": 13,
            "75870975456": 19,
            "75476844885": 12,
            "83798774445": 17
        }

        const entries = Object.entries(data)
        const sorted = entries.sort((a, b) => b[1] - a[1])
komentarz 13 lipca 2020 przez niezalogowany
Jak pokazać 20 pierwszych elementów?
komentarz 13 lipca 2020 przez DawidK Nałogowiec (37,910 p.)
możesz użyć slice()
komentarz 13 lipca 2020 przez niezalogowany
Slice ucina tylko.
komentarz 13 lipca 2020 przez DawidK Nałogowiec (37,910 p.)

Tak, dzięki temu otrzymujesz obiekt, w którym jest 20 posortowanych obiektów osób o rankingach od największego do najmniejszego.

        const data = {
            "51234123464": 15,
            "66362435234": 11,
            "73735757687": 14,
            "235234523456": 13,
            "75870975456": 19,
            "75476844885": 12,
            "83798774445": 17
        }

        const entries = Object.entries(data)
        const sorted = entries.sort((a, b) => b[1] - a[1])
        const top3 = sorted.slice(0, 3)
        top3.forEach((player) => console.log(`id:${player[0]} rank:${player[1]}`));

 

komentarz 13 lipca 2020 przez niezalogowany
edycja 13 lipca 2020
Aplikacja zaczęła mi teraz spamić wiadomościami.

Jak zrobic zeby wszystko byloby widoczne w jednym?
komentarz 13 lipca 2020 przez DawidK Nałogowiec (37,910 p.)
Ten kod dokładnie to robi - wyświetla w konsoli napis id:...(identyfikator)... i rank ...(ranking)....

Po prostu pokazuje, że bez problemów można dostać się do tych wartości i dalej je obrabiać. Nie wiem dokładnie jak chcesz je wyświetlać - nie przesłałeś kodu.
komentarz 13 lipca 2020 przez niezalogowany

Przepraszam bardzo ze to screen.

komentarz 13 lipca 2020 przez DawidK Nałogowiec (37,910 p.)

Nie korzystałem z API discorda, ale z tego co mi się wydaje to setDescription() powinna przyjmować jako argument string, w której chcesz mieć ranking (przynajmniej tak to rozumiem). Możesz sobie go zbudować wcześniej. 

        const data = {
            "51234123464": 15,
            "66362435234": 11,
            "73735757687": 14,
            "235234523456": 13,
            "75870975456": 19,
            "75476844885": 12,
            "83798774445": 17
        }

        const entries = Object.entries(data)
        const sorted = entries.sort((a, b) => b[1] - a[1])
        const top3 = sorted.slice(0, 3)
        let message = 'Top users: '
        top3.forEach((user) => {
            message += `id: ${user[0]}, rank:${user[1]},`
        });

i później tworzenie obiektu, ustawianie parametrów (korzystając z wiadomości) i wysyłka

komentarz 13 lipca 2020 przez niezalogowany
edycja 13 lipca 2020
Chwila
komentarz 13 lipca 2020 przez niezalogowany

@DawidK, Wszystko jest okej, tylko aplikacja ma problem z pobraniem nicku uzytkownika. Coś nie tak ID jest wzracane.

Podobne pytania

0 głosów
1 odpowiedź 79 wizyt
pytanie zadane 19 października 2020 w JavaScript przez poldeeek Mądrala (5,980 p.)
0 głosów
1 odpowiedź 88 wizyt
pytanie zadane 25 lutego 2020 w JavaScript przez Whereismycode Obywatel (1,710 p.)
0 głosów
2 odpowiedzi 219 wizyt
pytanie zadane 25 lutego 2020 w JavaScript przez matedoo Nowicjusz (210 p.)

92,579 zapytań

141,432 odpowiedzi

319,657 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...