« 1 2 »
Autor Zpráva
Schamann
Profil *
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
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
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 *
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 *
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
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
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 *
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
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
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 *
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
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
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);
}
Docela triviální, ne?
Schamann
Profil *
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
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
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 marker1marker100“ nemá smysl, to opravdu nepotřebuješ.
Schamann
Profil *
OK, panove ukoncime to, uz vim ze to nejde, udelam si to jinak, dekuji za vase prinosne komentare :)
_es
Profil
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 *
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
Schamann:
chci mit ty promenne jednotlive.
Môžeš mať predsa „jednotlivo“ rôzne prvky jedného poľa.
shaggy
Profil
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 *
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
Schamann:
chci dynamicky generovany nazev promenne.
Dôvod? K čomu ti to bude?
Schamann
Profil *
protoze:
for ($i = 0; $i < Pole.length; $i++) { 
echo "promenna".$i = $i; 
}
lze chtel jsem pouzit stejnou konstrukci v JS a neslo mi to, to je cele.
copak vsechno musi mit nejakej duvod? k čemu mi bude napriklad moje modry auto, kdyz se mi libi auta cervena?
maks
Profil
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
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
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.
« 1 2 »

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: