Chi mi spiega come? :3codice:foto=new Array() foto[0]="foto1.jpg"; foto[1]="foto2.jpg"; foto[2]="foto3.jpg"; foto[3]="foto4.jpg"; foto[4]="foto5.jpg"; foto[5]="foto6.jpg"; function cancella() { //devo cancellare foto[3] }
Chi mi spiega come? :3codice:foto=new Array() foto[0]="foto1.jpg"; foto[1]="foto2.jpg"; foto[2]="foto3.jpg"; foto[3]="foto4.jpg"; foto[4]="foto5.jpg"; foto[5]="foto6.jpg"; function cancella() { //devo cancellare foto[3] }
foto.splice(3,1);
Il guaio per i poveri computers e' che sono gli uomini a comandarli.
Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
Consultate la discussione in rilievo: script / discussioni utili
Usate la funzione di Ricerca del Forum
Ok grazie, e se dentro a quella function() c'è un if come posso fare per tornare alla alla funzione?ES :
Grazie e spero di essermi spiegatocodice:function A() { if ( // ISTRUZIONI ) { foto.splice(2,1) Torna a function A() } }![]()
sei già nella function a
Giustamente, faccio prima a farti vedere il codice
function A()codice:
{
Ogni volta che clicca sull immagine prima esegue una ricerca a random
var images = foto;
var rnd = Math.floor(Math.random()*images.length);
document.form1.original.src = images[rnd];
if ( // ISTRUZIONI )
{
foto.splice(2,1)
Torna a function A()
}
}
Giustamente, faccio prima a farti vedere il codice
Questo è il mio problema, non riesco a capire come far capire checodice:function A() { Ogni volta che clicca sull immagine prima cambia un immagine a random var images = foto; var rnd = Math.floor(Math.random()*images.length); document.(nomeForm).(nameImmagine).src = images[rnd]; Poi se l'immagine e' == foto[0] togli foto[1] }
se l immagine è == foto[0] elimina foto[1]
per eliminare l'immagine successiva a quella mostrata random usi
In questo modo se rnd +1 va oltre gli indici dell'array splice non fa niente.codice:images.splice((rnd+1), 1);
Potresti fare l'incremento circolare per ovviare a questo problema (sempre che sia un problema per quello che vuoi fare):
Considera che così nel caso in cui resta una sola immagine vai ad eliminare l'immagine che hai appena visualizzato non la successiva. E al click successivo otterrai un bel 'undefined'.codice:images.splice((rnd+1)%images.length, 1);
Quindi se ti interessa l'avanzamento circolare potresti prendere un'ultima accortezza e controllare prima che vi sia più di un elemento nell'array:
Non capisco a cosa serve tornare nella funzione a, 'a' dovrebbe essere la funzione che viene eseguita all'onclick sull'immagine quindi in a prendi un'immagine random, la visualizzi, cancelli la successiva.codice:if(images.length > 1) images.splice((rnd+1)%images.length, 1);
Per un esempio completo ti rimando qui
Si esatto hai ragione bene funziona grazie mille![]()