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

Stworzenie tablicy wypełnionej losowymi obiektami z pliku JSON

Object Storage Arubacloud
0 głosów
236 wizyt
pytanie zadane 29 lipca 2019 w JavaScript przez niezalogowany

Witam jak stworzyć tablice wypełnioną trzema losowymi obiektami z pliku JSON ? Poniżej daje JSON'a z danymi.

{
    "teams": [
        {
            "team": "Arsenal",
            "players": [
                {
                    "name": "Dani Ceballos",
                    "portrait": "../src/assets/images/daniel-ceballos-fernandez-128x128.png"
                },
                {
                    "name": "Matteo Guendouzi",
                    "portrait": "../src/assets/images/player_142720974.png"
                },
                {
                    "name": "Alex Iwobi",
                    "portrait": "../src/assets/images/player_106410.png"    
                },
                {
                    "name": "Sead Kolašinac",
                    "portrait": "../src/assets/images/player_47162.png"
                },
                {
                    "name": "Lucas Torreira",
                    "portrait": "../src/assets/images/player_122791521.png"
                }
            ]
        }
    ]
}

No i ogólnie chciałbym wylosować z tych pięciu obiektów tylko trzy ("players") i umieścić je w tablicy.

1 odpowiedź

0 głosów
odpowiedź 29 lipca 2019 przez BT101 Stary wyjadacz (12,540 p.)
 
Najlepsza
const getRandomNumber = (min, max) => {
    return Math.floor(Math.random() * (max - min) + min);
}

const getRandomPlayers = (amount) => {
  const randomPlayers = [];
  while(amount > 0) {
    randomPlayers.push(
      json.teams[0].players[getRandomNumber(0, json.teams[0].players.length)]
    )
    --amount;
  }
  return randomPlayers;
}

console.log(getRandomPlayers(3))

demo, dla ciebie zostawiam zrobienie żeby się nie powtarzali ;D jak czegoś nie rozumiesz to pytaj chociaż kod banalny

komentarz 30 lipca 2019 przez niezalogowany
edycja 30 lipca 2019

Poszperałem w internecie i znalazłem metode Array.from

Stworzyłem tablice z pięcioma pustymi obiektami.

const playerArray = Array.from({length: 5},()=>({}));

I teraz pytanie. Czy moge w tej pustej funkcji "() =>" wylosować te obiekty a potem je przekazać ? Póki co wygląda to tak:

komentarz 30 lipca 2019 przez BT101 Stary wyjadacz (12,540 p.)

Ale po co w ogóle Ci to array.from? Ta metoda służy do stworzenia tablicy z obiektu. Żeby stworzyć tablicę z pustymi obiektami równie dobrze mógłbyś użyć:

const arr = new Array(5)
arr.fill({})

 

komentarz 30 lipca 2019 przez niezalogowany
Bo ogólnie chciałbym stworzyć obiekt, który pobiera właściwości z obiektu z pliku JSON, i stworzyć tablicę która zawiera stworzone obiekty.
komentarz 30 lipca 2019 przez BT101 Stary wyjadacz (12,540 p.)

Mógłbyś trochę precyzyjniej się wyrażać bo nie rozumiem

 który pobiera właściwości z obiektu z pliku JSON

to z obiektu czy z JSON? JSON to string. Z pliku json? Znasz fetch?

komentarz 30 lipca 2019 przez niezalogowany

Tak ma wyglądać wyjściowa struktura

const playerArray = [
    {
        name: "zawodnik",
        image: "ścieżka do obrazka"
    },
    {
        name: "zawodnik",
        image: "ścieżka do obrazka"
    },
    {
        name: "zawodnik",
        image: "ścieżka do obrazka"
    },
    {
        name: "zawodnik",
        image: "ścieżka do obrazka"
    },
    {
        name: "zawodnik",
        image: "ścieżka do obrazka"
    },
]

właściwości które znajdują się w tych obiektach mają być pobierane z pliku JSON.

komentarz 30 lipca 2019 przez BT101 Stary wyjadacz (12,540 p.)

No przecież to jest jedna linijka, zrób jakiś tutorial JS :D

 

const playersArray = json.teams.map(el => el.players)

A pobrać JSON możesz fetch'em

komentarz 30 lipca 2019 przez niezalogowany
W tej chwili pobiera mi wszystkie obiekty z "players". Można ograniczyć ich liczbę i wybrać je losowo ?
komentarz 30 lipca 2019 przez BT101 Stary wyjadacz (12,540 p.)
Ale ty czekasz na gotowca... Na tym forum pomagamy a nie piszemy kod za innych. Dam ci mojego paypala przelejesz stówke i za 5min będziesz miał gotowca jak chcesz
komentarz 30 lipca 2019 przez niezalogowany
Dzięki za pomoc. zamykam temat :)

Podobne pytania

+1 głos
1 odpowiedź 262 wizyt
pytanie zadane 9 maja 2021 w JavaScript przez molik Użytkownik (950 p.)
+1 głos
0 odpowiedzi 287 wizyt
pytanie zadane 23 sierpnia 2021 w Python przez Marak123 Stary wyjadacz (11,190 p.)
0 głosów
1 odpowiedź 609 wizyt

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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!

...