Autor | Zpráva | ||
---|---|---|---|
PetrCPBBT Profil * |
Mám takový skript :
<script type="text/javascript"> var p=[[['49d7m14.687sN','17d59m23.561sE'],['49d7m19.876sN','18d3m1.012sE']],[['49d6m11.95sN','18d0m24.51sE'],['49d6m30.84sN','18d3m32.735sE']]]; for (i in p) { alert (p[i][0][0]); } </script> Tento funguje. V proměnné "p" je to, co očekávám tj. pouze hodnoty, které jsem tam vložil. Viz http://www.kolo-bezky.cz/akce/simonik/mapy/priklad2.jpg Používám to ale na mapy seznamu. Jakmile tam vložím jejich skript : <script type="text/javascript" src="http://api.mapy.cz/main?key=63eff5672&ver=3&encoding=utf-8"></script> tak najednou je v proměnné "p" následující : http://www.kolo-bezky.cz/akce/simonik/mapy/priklad1.jpg a skript přestane fungovat, protože cyklus jde i přes ty metody a to hodí chybu. Čím to je a jak odstranit chybu? Díky |
||
Chamurappi Profil |
#2 · Zasláno: 25. 5. 2010, 10:36:10 · Upravil/a: Chamurappi
Reaguji na PetraCPBBT:
Smyčka for -in se používá k procházení členů objektu, ne k procházení pole. Použij obyčejný cyklus s iterační proměnnou. (Nebo můžeš zkusit použít tu metodu forEach , kterou doskriptovávají mapy Seznamu.)
|
||
PetrCPBBT Profil * |
#3 · Zasláno: 25. 5. 2010, 11:31:02
Chamurappi:
Díky za odpověď. Ja to vlastně potřebuji použít nějak takto : var p={}; p["trasa1"]=[[1,2],[3,4],[5,6]]; p["trasa2"]=[[10,20],[30,40],[50,60]]; A tam právě nefunguje p.length. nevím, jak se dostat na ty trasa1,trasa2 ..... trasan. Cyklus for in taky nefunguje, ten jde i do těch přidaných metod. V jejich dokumentaci nemůžu najít ten forEach. Jak by se měl použít? Díky. |
||
Chamurappi Profil |
#4 · Zasláno: 25. 5. 2010, 12:39:20
Reaguji na PetraCPBBT:
„Cyklus for in taky nefunguje, ten jde i do těch přidaných metod“ Na obecné objekty, což je to tvé p , by měl fungovat správně. V Seznamu snad nejsou takoví blázni, aby rozšiřovali Object.prototype . (To, že rozšiřují Array.prototype , je docela pochopitelné.)
Na objekty — tedy na {} , do kterých přistupuješ přes název["člen"] nebo název.člen — je vhodná smyčka for -in .
Na pole — tedy na [] , do kterých přistupuješ přes název[číslo] — jsou vhodné klasické smyčky (název.length u nich funguje).
„V jejich dokumentaci nemůžu najít ten forEach. Jak by se měl použít?“ Předpokládám, že nějak takto: var pole = [1, 2, 3, 47]; pole.forEach(function(prvek) { alert(prvek); }); forEach nativně, v nich by to jelo i bez knihovny Seznamu.
|
||
Aichi Profil |
#5 · Zasláno: 25. 5. 2010, 14:57:56 · Upravil/a: Aichi
Abych uvedl na pravou míru, pan PetrCPBBT je spammer co čeká odpověď nejlépe hned :)
http://forum.lide.cz/forum.fcgi?akce=forum_data&forum_ID=70336 http://forum.lide.cz/forum.fcgi?akce=forum_data&forum_ID=86016 http://forum.lide.cz/forum.fcgi?akce=forum_data&forum_ID=47831 Chamurappi Samozřejmě prototypový objekt Object nerozšiřujeme :) |
||
PetrCPBBT Profil * |
#6 · Zasláno: 26. 5. 2010, 13:17:58
Aichi:
Tat spamer snad ne. Jenom jsem se nemohl dočkat odpovědi :-) Diky Chamurappi za odpověď a vysvětlení. |
||
Časová prodleva: 14 let
|
0