• 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?

VPS Starter Arubacloud
–1 głos
278 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ź 74 wizyt
pytanie zadane 19 października 2020 w JavaScript przez poldeeek Mądrala (5,980 p.)
0 głosów
1 odpowiedź 83 wizyt
pytanie zadane 25 lutego 2020 w JavaScript przez Whereismycode Obywatel (1,710 p.)
0 głosów
2 odpowiedzi 209 wizyt
pytanie zadane 25 lutego 2020 w JavaScript przez matedoo Nowicjusz (210 p.)

92,453 zapytań

141,262 odpowiedzi

319,087 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...