Autor | Zpráva | ||
---|---|---|---|
Schamann Profil * |
#1 · Zasláno: 18. 11. 2013, 02:14:16
Priklad:
for (var i = 0; i < Pole.length; i++) { var promenna = i; } potrebuju v kazdem cyklu definovat novou promennou: promenna0, promenna1, promenna2 atd... var promenna+i = i; // tohle nefunguje Slo by to nejak? Diky |
||
preca1 Profil |
#2 · Zasláno: 18. 11. 2013, 07:45:58
Zdravim,
nejspíš by to nějak šlo, ale nejspíš to neni to, co potřebuješ. Napiš, čeho se snažíš dosáhnout (širší kontext). |
||
maks Profil |
#3 · Zasláno: 18. 11. 2013, 07:58:24
Schamann:
vymýšlíš kraviny. Buď ti postačí iterační proměnná i z cyklu for (která každým průchodem je o jednu větší než předtím), nebo si nastuduj práci s poli.
|
||
pako Profil * |
#4 · Zasláno: 18. 11. 2013, 08:20:35
Jedine ako vlastnost objektu. Ak to ma co najviac pripominat premennu tak pravdepodobne objektu
window . Ale takisto nechapem, na co ti to je.
|
||
Schamann Profil * |
#5 · Zasláno: 18. 11. 2013, 11:50:21
jednoduse chci nadefinovat urcity pocet promennych, predem nevim kolik jich bude, odviji se to od poctu prvku Pole.
co je na tom za kravinu? v PHP si to udelam takhle: for ($i = 0; $i < Pole.length; $i++) { echo "promenna".$i = $i; } v JS mi to takhle nejde, jen chci vedet jestli mam neco blbe nebo to JS takhle neumi. a potrebuje mit definovane promenne predem, to pole bude mit maximalne 100 polozek, takze samosebou umim si to vyresit a muzu si tech 100 varu napsat primo, a pak pouzit jen tolik kolik budu potrebovat ale zajimalo me jestli to jde takhle, prijde mi to "hezci" reseni. |
||
martin1312 Profil |
#6 · Zasláno: 18. 11. 2013, 11:58:44
Prečo s tým nepracuješ ako s poľom ale pcháš to do premenných? Ak tomu správne rozumiem, v 'Pole' už máš pole hodnôt...
|
||
_es Profil |
Schamann:
„jen chci vedet jestli mam neco blbe nebo to JS takhle neumi.“ „Blbo“ je to, že je to „blbý“ nápad. „potrebuju v kazdem cyklu definovat novou promennou: promenna0, promenna1, promenna2 atd...“ A prečo namiesto tých nezmyselných premenných, ktoré chceš vytvoriť, nepoužiješ rovno pole[0] , pole[1] , pole[2] ,...?
Viď aj Pole v Javascriptu. |
||
Sir Tom Profil |
#8 · Zasláno: 18. 11. 2013, 12:13:25
Schamann:
„jednoduse chci nadefinovat urcity pocet promennych, predem nevim kolik jich bude“ Pokud nevíš, kolik jich bude, tak jich vytvoř 2 miliony. Nebo se na to takové přednostní tvoření proměnných vykašli a proměnnou tvoř až tehdy, kdy ji potřebuješ. Pokud potřebuješ uchovávat více hodnot, tak použij klasické pole. |
||
Schamann Profil * |
#9 · Zasláno: 18. 11. 2013, 12:13:35
protoze v tech promennych bude neco jineho nez obsah toho pole.
Doprcic proc resite co me k tomu vede a nenapisete odpoved? Programuju 20 let, JS jsem zatim dikybohu nikdy nepotreboval, ted jsem nucenej npsat 50 radku v JS, resim blbost, ktera mi kdekoliv jinde funguje. Proc to chi zrovna takhle je muj problem. Napsal jsem konkretni zadani, konkretni otazku, obejit to umim, zajima jen to jestli je to takhle mozne udelat nebo jestli to JS neumi to je cele. |
||
_es Profil |
#10 · Zasláno: 18. 11. 2013, 12:20:09
Schamann:
„protoze v tech promennych bude neco jineho nez obsah toho pole.“ No tak si namiesto tých nezmyselných premenných vytvor ďalšie pole. „Doprcic proc resite co me k tomu vede a nenapisete odpoved?“ Lebo nás veľmi zaujíma, čo ťa „vedie“ k vymýšľaniu takých nezmyslov:-) |
||
Sir Tom Profil |
Schamann:
„Doprcic proc resite co me k tomu vede a nenapisete odpoved?“ Protože se ti snažíme poradit, jak to udělat ještě lépe. „Programuju 20 let“ O tom silně pochybuji... „resim blbost, ktera mi kdekoliv jinde funguje“ Ukaž. „Proc to chi zrovna takhle je muj problem.“ Jo - zde s tebou sohlasím. „Napsal jsem konkretni zadani, konkretni otazku, obejit to umim, zajima jen to jestli je to takhle mozne udelat nebo jestli to JS neumi to je cele.“ Nejde to. |
||
Chamurappi Profil |
#12 · Zasláno: 18. 11. 2013, 12:23:49
Reaguji na Schamanna:
„potrebuju v kazdem cyklu definovat novou promennou: promenna0, promenna1, promenna2“ Nepotřebuješ. Soudě dle vedlejšího příspěvku nejspíš hledáš lexikální uzávěr. „protoze v tech promennych bude neco jineho nez obsah toho pole.“ Můžeš používat víc polí. „proc resite co me k tomu vede a nenapisete odpoved?“ Protože žádáš prasárnu. Jestli tímhle stylem programuješ 20 let, tak jsi v rozvoji svého programátorského umu ustrnul příliš brzy. Sestavit název globální proměnné jako řetězec sice jde, ale nikdy to není doopravdy potřeba. Kdybychom věděli, čeho přesně chceš docílit, dostal bys odpověď nejen funkční, ale i programátorsky čistou. |
||
Schamann Profil * |
#13 · Zasláno: 18. 11. 2013, 12:32:30
ok, tak konkretne: vysledek je tohle:
var marker1 = new google.maps.Marker({ map: map, position: new google.maps.LatLng(37.789879, -122.390442) }); var marker2 = new google.maps.Marker({ map: map, position: new google.maps.LatLng(37.787814,-122.40764) }); var marker3 = new google.maps.Marker({ map: map, position: new google.maps.LatLng(37.767568,-122.391665) }); google.maps.event.addListener(marker1, 'click', onMarkerClick); google.maps.event.addListener(marker2, 'click', onMarkerClick); google.maps.event.addListener(marker3, 'click', onMarkerClick); tak udelate mi promennou marker1 marker2 .. marker100 podle potreby v cyklu for? |
||
_es Profil |
#14 · Zasláno: 18. 11. 2013, 12:37:12
Schamann:
„udelate mi promennou marker1 marker2 .. marker100 podle potreby v cyklu for?“ Snáď sa taký „dobrák“ nenájde. Prečo nepoužiješ nové pole marker ?
var marker=[]; marker[0]=...; marker[1]=...; ... |
||
Chamurappi Profil |
#15 · Zasláno: 18. 11. 2013, 12:39:30
Reaguji na Schamanna:
„udelate mi promennou marker1 marker2 .. marker100 podle potreby v cyklu for?“ Neuděláme, protože stovka proměnných opravdu není potřeba. var souřadnice = [ new google.maps.LatLng(37.789879, -122.390442), new google.maps.LatLng(37.787814,-122.40764), new google.maps.LatLng(37.767568,-122.391665) ]; for(var i = 0; i < souřadnice.length; i++) { var marker = new google.maps.Marker({ map: map, position: souřadnice[i] }); google.maps.event.addListener(marker, 'click', onMarkerClick); } |
||
Schamann Profil * |
#16 · Zasláno: 18. 11. 2013, 12:41:46
ano docela trivialni, problem je, ze takhle to skutecne nefunguje :) a skutecne to neni to co jsem chtel... o poli markeru ani nemluvim.
|
||
_es Profil |
#17 · Zasláno: 18. 11. 2013, 12:49:51
Schamann:
„takhle to skutecne nefunguje“ Čo znamená „nefunguje“? Asi to „nefunguje“ v dôsledku nejakej inej chyby, mimo toho vyseknutého kusu kódu. Možno si si nedostatočne naštudoval dokumentáciu tej Google JS knižnice. „o poli markeru ani nemluvim.“ To je taký problém namiesto výrazu marker99 použiť výraz marker[99] ?
|
||
Chamurappi Profil |
#18 · Zasláno: 18. 11. 2013, 13:09:32
Reaguji na Schamanna:
„problem je, ze takhle to skutecne nefunguje :)“ Vážně? Já bych řekl, že takhle to funguje. Je tam přesně kód z příspěvku [#15]. Co nefunguje? „skutecne to neni to co jsem chtel“ Ve svém příspěvku [#13] jsi psal, že máš problém konkrétně s tímto. Popiš prosím svůj skutečný problém. Opakovat otázku „jak vyrobit marker1 až marker100 “ nemá smysl, to opravdu nepotřebuješ.
|
||
Schamann Profil * |
#19 · Zasláno: 18. 11. 2013, 13:10:54
OK, panove ukoncime to, uz vim ze to nejde, udelam si to jinak, dekuji za vase prinosne komentare :)
|
||
_es Profil |
#20 · Zasláno: 18. 11. 2013, 13:21:37
Schamann:
„uz vim ze to nejde“ Ale ono to ide, len ti to tí, čo to vedia, nechcú poradiť, lebo to je prakticky nezmyselné. Na čo by ti tých 100 premenných bolo? Ako by si s nimi prakticky pracoval? |
||
Schamann Profil * |
#21 · Zasláno: 18. 11. 2013, 13:32:14
nutno dodat, ze Chamurappi kod samozrejme funguje, nemyslel jsem to tak ze ne, jen tolik, ze to neni reseni toho puvodniho dotazu kde chci mit ty promenne jednotlive. a umyslne jsem pro ilustraci pouzil ten stejny kod z druheho tematu primo ze vzoru na google. tot vse. Vysledek = lze to jinak, ale to jsem nechtel, to vim ze to lze jinak. :)
|
||
_es Profil |
#22 · Zasláno: 18. 11. 2013, 13:49:02
Schamann:
„chci mit ty promenne jednotlive.“ Môžeš mať predsa „jednotlivo“ rôzne prvky jedného poľa. |
||
shaggy Profil |
#23 · Zasláno: 18. 11. 2013, 14:00:18
Schamann:
„a umyslne jsem pro ilustraci pouzil ten stejny kod z druheho tematu primo ze vzoru na google“ Úplnou náhodou práve dnes riešim takmer totožnú vec (zobrazovanie veľkého počtu markerov na google mape, pridávanie popisov + spájanie viacerých markerov do clusterov). Nikdy predtým som podobnú vec s google mapami neriešil, dnes som si pozrel ich príklady + pár príkladov na nete a kód všetkých (vrátane tých oficiálnych) sa na 99% podobal na ten Chamurappiho a žiaden nebol zapísaný tak neprakticky (zle, nezmyselne - vyber si), ako sa o to snažíš ty. Príklad - http://stackoverflow.com/questions/3059044/google-maps-js-api-v3-simple-multiple-marker-example Sám vidíš, že nikdy nevytvárajú 100 rôznych premenných. |
||
Schamann Profil * |
#24 · Zasláno: 18. 11. 2013, 14:03:59
to ja vim, ale tak to ja nechci. chci dynamicky generovany nazev promenne. pole neni nazev promenne. resp marker1 neni totez jako marker[1].
|
||
_es Profil |
#25 · Zasláno: 18. 11. 2013, 14:06:24
Schamann:
„chci dynamicky generovany nazev promenne.“ Dôvod? K čomu ti to bude? |
||
Schamann Profil * |
#26 · Zasláno: 18. 11. 2013, 14:18:21
protoze:
for ($i = 0; $i < Pole.length; $i++) { echo "promenna".$i = $i; } copak vsechno musi mit nejakej duvod? k čemu mi bude napriklad moje modry auto, kdyz se mi libi auta cervena? |
||
maks Profil |
#27 · Zasláno: 18. 11. 2013, 14:27:55
Schamann:
v uvedeném kousku pouze echuješ, nic nevykonáváš. Vypisovat stejným způsobem můžeš samozřejmě i v JS, ani na to není třeba sada proměnných místo pole. „k čemu mi bude napriklad moje modry auto, kdyz se mi libi auta cervena?“ barva auta se jen veze, blbě napsaný kód shazuje aplikaci. Tvoje přirovnání trochu kulhá, nemyslíš? Zkusme ho vylepšit: Proč si kupovat auto, které postavil doma na koleni neznalý elektrikář, když si můžeš koupit lepší a kvalitní auto z výroby? Na barvě v tomto případě nesejde, to první může být červené, druhé modré, ale na tvoje rozhodování barva nebude mít vliv. |
||
shaggy Profil |
#28 · Zasláno: 18. 11. 2013, 14:29:38
Okrem toho, že tvoj php skript má chybu (Pole.length), tak sa môžeš rovnako sťažovať, že ti v javascripte nefunguje echo.
Je to iný jazyk, zvykni si na iný zápis. A ani v php by to nebol najšťastnejší zápis, taj tam by som použil $premenna[$i] = $i .
|
||
_es Profil |
#29 · Zasláno: 18. 11. 2013, 14:37:56
Schamann:
„lze chtel jsem pouzit stejnou konstrukci v JS a neslo mi to, to je cele.“ Ale v tom PHP kóde predsa nevytváraš dynamicky nijaké premenné s ľubovoľným názvom. „copak vsechno musi mit nejakej duvod?“ Ty vytváraš nezmyselné kódy, len tak, „bez dôvodu“ a ani nevieš prečo? shaggy: „tvoj php skript má chybu (Pole.length),“ Nie je nezmyslom aj druhý riadok? |
||
Chamurappi Profil |
Reaguji na Schamanna:
„protože […] lze“ Vážně? Nevypisuje uvedený kód jen hodnotu $i ? PHP moc neznám.
„copak vsechno musi mit nejakej duvod?“ Samozřejmě. Skutečně už programuješ 20 let? Myslím si že základní příčina tvého trápení je shodná s dotazem Zbavení se kontextu (odkazu, provázání...) s proměnnou. Když v cyklu přiřazuješ obsluhy událostí, tak proměnné v cyklu oditerují mimo rozsah dřív, než k první události dojde. Správným řešením je zanořená funkce, která má vlastní rozsah platnosti proměnných. Když se nad tím zamyslíš, je to docela snadné a elegantní, jen musíš být méně tvrdohlavý :-) „k čemu mi bude napriklad moje modry auto, kdyz se mi libi auta cervena?“ Jestli umíš řídit, tak s ním můžeš třeba jezdit. Jestli ne, můžeš ho prodat, koupit si červené auto a koukat na něj. |
||
Téma pokračuje na další straně.
|
0