JS: for..in megszakítása majd folytatása
Sziasztok!
Szeretnék megszakítással végigsétálni egy objektum elemein, pl:
for (i in obj)
if (i==valami) break;
...
Itt folytatnám, esetleg később settimeouttal, vagy ilyesmi. Nem akarom elölröl kezdeni a ciklust, az felesleges.
Lehet valahogy folytatni? ... gondolom nem, mert sehol sem találtam ilyesmit. De van-e valami trükk?
Pl arra gondoltam, hogy megkettőzöm az objektumot, és amin végigmentem, azt kiveszem belőle, így legközelebb már csak a maradék marad (logikus :-)
De nem tudom hatékonyan megkettőzni, sőt kivenni belőle sem megy. pl. obj['ize']=null még nem elég, ettől még az 'ize' tulajdonság megmarad...
Van valakinek valami jó ötlete?
Köszönöm!
Wezz
■ Szeretnék megszakítással végigsétálni egy objektum elemein, pl:
for (i in obj)
if (i==valami) break;
...
Itt folytatnám, esetleg később settimeouttal, vagy ilyesmi. Nem akarom elölröl kezdeni a ciklust, az felesleges.
Lehet valahogy folytatni? ... gondolom nem, mert sehol sem találtam ilyesmit. De van-e valami trükk?
Pl arra gondoltam, hogy megkettőzöm az objektumot, és amin végigmentem, azt kiveszem belőle, így legközelebb már csak a maradék marad (logikus :-)
De nem tudom hatékonyan megkettőzni, sőt kivenni belőle sem megy. pl. obj['ize']=null még nem elég, ettől még az 'ize' tulajdonság megmarad...
Van valakinek valami jó ötlete?
Köszönöm!
Wezz
Egy megoldás
amire gondolsz az a delete
üdv t :)
Objektummásolás?
Sly: a kódodat nemigazán értettem, de gondolom azt sugalltad, hogy az aktuális ciklusváltozót mentsem el, és aztán próbáljam meg ráerőszakolni a 2. ciklusra, ugye? Ez nagyon nagy ötlet! Kipróbáltam így (alább) de sajnos nem működik.
Toxin:
Köszi a delete-t, most hogy írtad, nekem is beugrott :-)
... objektummásolásra nincs valami egyszerűbb, gyorsabb mód, mint végigmenni rajta és elemenként lemásolni? (próbálkoztam a valueOffal, de nem nyert)
Köszi
Wezz
re
Ez azért mégiscsak végigfut még egyszer...
Szóval ha jól látom, ebben a verzióban végigtekered a 2. ciklust a mem-ig, vagyis ismét végigfut az egészen (bár gyorsan) ... szóval közben az az ötletem támadt, hogy az objektumnak csinálok 2 tempobjektumát; amikor feltöltöm az objektumot adatokkal, feltöltöm a másikat is (nem nagy időkiesés) (a 2.temp üres) -- majd amikor az első ciklus elkezd végigmenni, akkor a temp[1] objektumon megy végig, kitörölgeti az elemeket, és a feldolgozott elemeket átpakolja közben a temp[2]-be; ez akárhány ütemben elvégezhető. Ha elfogytak az elemek, legközelebb a temp[2] objektumon megyek végig és a temp[1]be rakom át a cuccot. Jó ötlet, nem?
Köszi a hozzászólásokat, heppi kódolást!
Wezz
egy némiképp átgondoltabb
üdv t
és mindez prototype class-ban
dumpTo metódussal kiiírja addig (és tárolja egy belős mutatóban az -iget), setFrom peddig állítja a belső mutatót és kiiírja legközelebb onnantól dumpTo-ig, eredeti objektum megörződik természetesen
no áldassék a maximalizmus és az intelligancia minden formája :)
üdv t
ui:
http://prototype.rajmi.hu/prototype.js.hu.html
Toxin egy vonat
... a prototype-ot nem használom (még) ezért ez utóbbit kissé nehezen értelmezem (meg felmérni sem tudom, hogy mennyire hatékony) --- remélem, nem csak miattam csináltad (már csak azért is, mert említettem, hogy nem kódot kérek) -- meg természetesen már én is megcsináltam a 2 temptömbös változatot időközben (ide be is illeszteném, de nem általános kód, hanem feladatspecifikus -- majd később írok egy absztrakt verziót is talán)
Szóval hajrá Toxin!
Wezz