» Poradna » Programy

Jak přidat další položky do pole v JS

 |   |  Microsoft Windows 10 Chrome 77.0.3865.120

Ahoj, poradí někdo jak přidat další položky? Zkoušel jsem kde co, prostě to nejde. Děkuji.var pole = {1:{a:'A1',b:'B1',c:'C1'},2:{a:'A2',b:'B2',c:'C2'},}

Odpovědi na otázku

 |   |  Microsoft Windows 10 Firefox 69.0

Problém je, že to není pole. Je to objekt.Do objektu se dá přidávat pomocí pole[5] = xxxx pokud se jedná o číselný index, nebo pole.nazev = xxx pokud se jedná o řetězecPole jevar pole = [ {a:'A1',b:'B1',c:'C1'},{a:'A2',b:'B2',c:'C2'} ]a tam se pak dají použít další metody, které pracují jen s poli, jako pole.push(xxx) atd.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 77.0.3865.120

Tak že mám objekt, ne pole a ty mi radíš ohledně pole, nerozumím tomu :(

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 69.0

Však to píšu.Pokud je objekt definován taktovar pole = {1:{a:'A1',b:'B1',c:'C1'},2:{a:'A2',b:'B2',c:'C2'},}tak přidání prvku se provádí:pole[5] = {a:'A5',b:'B5',c:'C5'}nebo přidání do vnořeného objektu:pole[1].a = xxxxxxRaději napiš, co přesně ti nefunguje

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 77.0.3865.120

Tak mám tohlevar pole = {1:{a:'A1',b:'B1',c:'C1'},2:{a:'A2',b:'B2',c:'C2'},}a potřebuji přidat položky 3:{a:'A3',b:'B3',c:'C3'},aby výsledek byl tohlevar pole = {1:{a:'A1',b:'B1',c:'C1'},2:{a:'A2',b:'B2',c:'C2'},3:{a:'A3',b:'B3',c:'C3'},}Problém je v tom, že nevím jak to mám přidat na konec toho objektu aby tam nebyla duplicita těch prvních ID 1,2,3.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 69.0

Možná by stálo za zvážení použít na tohle normální pole.Objekt se sice může chovat podobně jako pole, ale on ty indexy 1,2,3 nevidí jako nějaké pořadí, ale jako názvy vlastností, mezi kterými není vůbec žádný vztah. On neví, že by po 2 měla následovat 3 a tudíž není ani možné říct mu, ať to uloží "na konec".Řešení jsou tu dvě:1) Použít normální polevar pole = [ {a:'A1',b:'B1',c:'C1'},{a:'A2',b:'B2',c:'C2'} ]a potom volat pole.push({a:'A3',b:'B3',c:'C3'})což uloží danou položku vždy na konec a nedojde k duplicitě.2) Pokud už musíš požít objekt, tak musíš ručně zjistit nejvyšší 'index' na který se to má uložit, tzn. zjistit ručně, jaké nejvyšší číslo je v tom objektu uložené, např.:pole[Math.max(...Object.keys(pole))+1] = {a:'A3',b:'B3',c:'C3'}

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 77.0.3865.120

...a potom volat pole.push({a:'A3',b:'B3',c:'C3'})...Tohle ale nevloží do pole klíč, proč?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 69.0

Vloží to prvek co je v závorce na konec pole. Nechápu jaký klíč by to mělo vkládat.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 77.0.3865.120

Hm, když to nebude mít key, jak pak zavolám nějakou jednu položku aniž bych to procházel nějakým cyklem?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 69.0

to, co nazýváš klíčem v poli je číslo, defaultně od 0 ... a jak chceš pole projíždět, když ne cyklem?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 77.0.3865.120

Když má pole 10000 položek, a já potřebuji vypsat pouze 250-tou, tak to mám dát do cyklu a do toho cyklu podmínku, která bude testovat, zda už se jedná nebo nejdená o 250 a tu položku vypsat? Tak to pak jo

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Android AppleMAC-Safari 5.0

pole[249]Pole se indexují od nuly, takže 250. položka má index 249.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 69.0

Jak psal nademnou, pole se čísluje samo defaultně od nuly, takže proč by si proboha projížděl pole pro obyč výpis? prostě pole[249] je 250. pole ... tohle je v každým tutoriálu na každý stránce pro jakýkoliv normální programovací jazyk

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 77.0.3865.120

Není to náhodou index?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Android AppleMAC-Safari 5.0

Samozřejmě, že je to index.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 77.0.3865.120

A jsme u toho, pokud tedy smažu položku s indexem 3 a pole obsahuje 10 položek, můžu smazat položku s indexem 3 ještě 7x. Potřebuji smazat položku s klíčem 3 tak, aby tam už prostě položka s klíčem 3 nebyla. Index mě nezajímá.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 77.0.3865.120

Možná kdybys hned na začátku vybalil, co vlastně potřebuješ, tak bysme tu už druhý den nemuseli pátrat ve tmě. Asi to tak nutně nepotřebuješ.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 77.0.3865.120

Potřebuji to nutně, jestli jsem to nenapsal srozumitelně tak se omlouvám.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 77.0.3865.120

Tak použij znovu objekt a pamatuj si v nějaké další proměnné klíč posledního přidaného prvku.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 77.0.3865.120

Tak že co se týká array v JS, umí pracovat pouze s číselnými indexy, nemůžu si vytvořit vlastní, chápu to dobře, jo?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Android AppleMAC-Safari 5.0

Chápeš to dobře a rozhodně to není jenom v JS. Číselné indexy jsou ve většině jazyků. Pokud potřebuješ jiné, musíš použít jinou datovou strukturu. Ale v čistém JS není na výběr v podstatě nic jiného než objekt. Samozřejmě si tu strukturu můžeš naprogramovat sám přesně podle svých představ, ale to momentálně přesahuje tvé schopnosti.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 69.0

push() vrací novou délku pole, na kterém se volá. Tudíž index vloženého prvku je var index = pole.push(...) - 1;Smazání položky se zachováním indexů je pak:delete pole[3];prvek na indexu 3 se pak stane undefined, ostatní zůstanou zachovaný.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 69.0

Nebo nastav daný pole s indexem 3 na null a máš to

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 77.0.3865.120

Díky moc, beru první možnost Objekt nepotřebuji.

Souhlasím  |  Nesouhlasím  |  Odpovědět


Určitě si přečtěte

Hesla jsou zlo. Hackeři napáchali tolik škody právě proto, že vůbec existují

Hesla jsou zlo. Hackeři napáchali tolik škody právě proto, že vůbec existují

** Nikdo si je nepamatuje ** Žádné není zcela bezpečné ** Nejlepší by bylo je prostě zrušit

Jakub Čížek | 59

Jak funguje kontroverzní program, který ženám krade plavky. Mají se čeho bát?

Jak funguje kontroverzní program, který ženám krade plavky. Mají se čeho bát?

** Strojové učení ještě nepřitáhlo takový zájem jako na začátku prázdnin ** Ne, umělá inteligence nenašla lék na rakovinu ** Naučila se svlékat ženy nejen z plavek

Jakub Čížek | 35

Zorin OS 15: Vyzkoušejte další hezký a nenáročný linux pro mamku a taťku

Zorin OS 15: Vyzkoušejte další hezký a nenáročný linux pro mamku a taťku

** Ačkoliv je grafických linuxů plný internet, stále vládnou Windows ** Jeden z nich se jmenuje Zorin OS a nedávno se dočkal aktualizace ** Dělají jej dva kluci z Irska a je fakt hezký

Jakub Čížek | 115

Pojďme programovat elektroniku: České chytré zásuvky Netio pro kutily i firmy

Pojďme programovat elektroniku: České chytré zásuvky Netio pro kutily i firmy

** Wi-Fi zásuvky nevyrábí pouze Čína ** Vyzkoušeli jsme českou Netio PowerCable ** Je přímo určená pro vývojáře, má totiž jednoduché JSON API

Jakub Čížek | 43

HTTPS byl pouze první krok. Chrome zavádí DoH, tedy šifrované DNS. Dopady mohou být obrovské

HTTPS byl pouze první krok. Chrome zavádí DoH, tedy šifrované DNS. Dopady mohou být obrovské

** Šifrovaný web je dnes už samozřejmost ** Jeden díl skládačky ale ještě chybí – DNS ** Firefox už začal a teď se na šifrované DNS chystá i Chrome

Jakub Čížek | 94


Aktuální číslo časopisu Computer

Megatest 20 procesorů

Srovnání 15 True Wireless sluchátek

Vyplatí se tisknout fotografie doma?

Vybíráme nejlepší základní desky