come non detto... ora non funge + neanche su IE6...
ma se ho fatto un esempietto di poche linee e fungeva... lo sbatto nel codiciONE e non va...
mmm
la pag è questa
come non detto... ora non funge + neanche su IE6...
ma se ho fatto un esempietto di poche linee e fungeva... lo sbatto nel codiciONE e non va...
mmm
la pag è questa
"La consapevolezza di Case suddivisa come perle di mercurio. La sua visione era sferica, come se una singola retina rivestisse la superficie interna di un globo che conteneva tutte le cose, se tutte le cose si potevano contare." —Neuromante, William Gibson (1984)
nooooooo BUHAHAHAHHA dsono un deficiente... avevo riscritto male il nome di una delle matrici... ora funge anche su IE5
GRAZIEEEEEE
TUTTAVIA... coem sospettavo... risolto il problema del push si pone quello dello splice...
ovvero si aggiungo gli elementi ma non si rimuovono!!!!
aaaaaaaa su IE6 si rimuovono correttamente x' a quanto pare supporta lo splice... su IE 5 no...
come posso eliminare un elemento da una posizione arbitraia dell'array senza lo splice...????? arghhhhh
"La consapevolezza di Case suddivisa come perle di mercurio. La sua visione era sferica, come se una singola retina rivestisse la superficie interna di un globo che conteneva tutte le cose, se tutte le cose si potevano contare." —Neuromante, William Gibson (1984)
Non so se funziona nei casi n==0 e n==arr.length (occorrerebbe verificare cosa succede ai vari for, e forse sostituirli con while, ma lo lascio fare a Willy, che queste cose le sa fare ... cosi` imparo anche qualcosa).codice:function mySplice(arr,n) { var i, j=0; var newarr = new Array(); for(i=0; i<n; i++) { newarr[j++] = arr[i]; } for(++i;i<arr.length; i++) { newarr[j++] = arr[i]; } return newarr; }
Ciao
Michele
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
ma quanto bella è sta funzione?!?!??!?!?
MA IO TI REGALO UN CESTO DI NATALE!!!! oggi te lo spedisco!
GRAZIE MILLE, VERAMENTE FUNGE CHE è UNA MERAVIGLIA! :metallica :metallica :mavieni: :metallica :mavieni: :tongue:
ciaooooooooooooooo
"La consapevolezza di Case suddivisa come perle di mercurio. La sua visione era sferica, come se una singola retina rivestisse la superficie interna di un globo che conteneva tutte le cose, se tutte le cose si potevano contare." —Neuromante, William Gibson (1984)
Riekkime :gren: (ho avuto un po' da fare e poi il forum era in manutenzione)
io non avevo mai usato splice, slice, push, pop negli array js
mi sono documentato un po'... avrei fatto dei prototype per l'Array nel caso il browser non sia "di ultima generazione"
chi ha IE5 per verificare?
me fate sape'?codice:arr = new Array if(!arr.pop){ Array.prototype.pop = function(){ valore = this[this.length-1] this.length = this.length-1 return valore } } if(!arr.push){ Array.prototype.push = function(valore){ this[this.length]=valore } } if(!arr.slice){ Array.prototype.slice = function(inizio,fine){ xArray = new Array() if(!fine || fine>this.length)fine=this.length for(i=inizio;i<fine;i++){ xArray[xArray.length]=this[i] } return xArray } } if(!arr.splice){ Array.prototype.splice = function(inizio,lunghezza){ xArray = new Array() fine = inizio+lunghezza if(fine>this.length)fine=this.length for(i=inizio;i<fine;i++){ xArray[xArray.length]=this[i] } lun = this.length j=0 for(i=0;i<lun;i++){ if(i<inizio || i>=fine){ this[j++]=this[i] } } this.length=j return xArray } }
Aloha
questo è il tipico esempio di javascript crossversion.Originariamente inviato da willybit
Riekkime :gren: (ho avuto un po' da fare e poi il forum era in manutenzione)
io non avevo mai usato splice, slice, push, pop negli array js
mi sono documentato un po'... avrei fatto dei prototype per l'Array nel caso il browser non sia "di ultima generazione"
chi ha IE5 per verificare?
me fate sape'?codice:arr = new Array if(!arr.pop){ Array.prototype.pop = function(){ valore = this[this.length-1] this.length = this.length-1 return valore } } if(!arr.push){ Array.prototype.push = function(valore){ this[this.length]=valore } } if(!arr.slice){ Array.prototype.slice = function(inizio,fine){ xArray = new Array() if(!fine || fine>this.length)fine=this.length for(i=inizio;i<fine;i++){ xArray[xArray.length]=this[i] } return xArray } } if(!arr.splice){ Array.prototype.splice = function(inizio,lunghezza){ xArray = new Array() fine = inizio+lunghezza if(fine>this.length)fine=this.length for(i=inizio;i<fine;i++){ xArray[xArray.length]=this[i] } lun = this.length j=0 for(i=0;i<lun;i++){ if(i<inizio || i>=fine){ this[j++]=this[i] } } this.length=j return xArray } }
Aloha
per me, andrebbe diretto tra gli script utili.
ciauz
Miiiiii!!! Sono onoratoOriginariamente inviato da standard
questo è il tipico esempio di javascript crossversion.
per me, andrebbe diretto tra gli script utili.
ciauz
ma hai controllato che funzioni tutto a dovere?
Denghiu
non l'ho provate ancora, ma le prime per lo meno non penso che riservino sorprese, cmq le proveròOriginariamente inviato da willybit
Miiiiii!!! Sono onorato
ma hai controllato che funzioni tutto a dovere?
Denghiu
Io userei però più variabili locali (invece che globali tipo xArray).
ciauz
ma va la!Originariamente inviato da willybit
Miiiiii!!! Sono onorato
mamma ma che figata... grazie anche a te willybit...
io vengo dritto dritto da flash... e la maggior parte delle cose sono identiche... ma lì c'è giusto il problema di plugin per 5 o mx... in js tutte ste cose dei browser mi han mandato in paranoia LOL... e poi anche il discorso delle finestre e frames che all'inizo mi ha incasinato un po'
cmq grande script!
ciauzzzzz
"La consapevolezza di Case suddivisa come perle di mercurio. La sua visione era sferica, come se una singola retina rivestisse la superficie interna di un globo che conteneva tutte le cose, se tutte le cose si potevano contare." —Neuromante, William Gibson (1984)
ho controllato meglio, e queste sembrano andare...Originariamente inviato da willybit
ma hai controllato che funzioni tutto a dovere?
non lo testate troppo e forse potrebbe essermi sfuggito qualcosa..percui butta un'occhio anche tu.codice:if(!Array.prototype.pop){ Array.prototype.pop = function(){ var l=this.length,valore = this[l-1]; this.length = l-1; return valore } } if(!Array.prototype.push){ Array.prototype.push = function(valore){ this[this.length]=valore; } } if(!Array.prototype.slice){ Array.prototype.slice = function(inizio,fine){ var i,l=this.length,xArray = new Array(); fine=!fine||Math.abs(fine)>=l?Math.sign(fine||1)*l: (l+fine)%l; for(i=inizio;i<fine;i++){xArray[xArray.length]=this[i]} return xArray } } Math.sign=function(v){return v>0?1:-1;} if(!Array.prototype.splice){ Array.prototype.splice = function(s,n){ var i,j,k,l=this.length,ar=arguments,r,appoggio=[]; n=n<0?0:s+n>l?l-s:n;r=this.slice(s,s+n); for(i=s+n;i<l;i++){appoggio[i-s-n]=this[i];} //mi salvo i contenuti da s+n in poi for(j=s,k=2;k<ar.length;k++){this[j++]=ar[k];} // sostituisco da s gli n elementi for(j=s+k-2,i=0;i<appoggio.length;i++){this[j++]=appoggio[i];} this.length=j; return r; } }
come al solito non ho commentato bene le funzioni...sorry....:tongue:
ciauz
done itOriginariamente inviato da standard
questo è il tipico esempio di javascript crossversion.
per me, andrebbe diretto tra gli script utili.
ciauz