Volledige versie bekijken : array verwijder vraag
latino
%Europe/Berlin %486 %2005, 12:40
hallo ik heb F1 gedrukt en even gekeken wat de mogelijkheden zijn met een array. Alleen wat ik wil kom ik niet tegen..ik zal het even uitleggen
ik wil bv:
stel ik heb deze array:
var myAr_array:Array = new Array("1", "2", "3", "4", "5");
nu heb ik een variable met een van bovenstaande getallen erin
Ik wil dat als ik bijv een variable heb met het nummer 3 dat deze uit de array wordt gehaald en de rest blijft staan en de array niet gewijzigd wordt.
Mijn oorspronkelijke array is dus:
var myAr_array:Array = new Array("1", "2", "3", "4", "5");
en na delete van 3:
var mynieuwAr_array:Array = new Array("1", "2", "4", "5");
zodat ik deze kan gebruiken
nu dacht ik dat met slice of splice te kunnen doen maar dat kan niet
Hij moet zeg maar de oorspronkelijke array behouden en een nieuwe afleveren :)
Dauntless
%Europe/Berlin %489 %2005, 12:45
Kijk op http://proto.layer51.com en zoek naar 'removeValue' bij de arrays.
latino
%Europe/Berlin %500 %2005, 13:00
bedoel je dit:
Array.prototype.removeValue = function (string) {
for(i=0 ; i < this.length ; i++){
if(this[i] == string){
this.splice(i, 1)
}
}
}usage
montableau.removeValue('lapin')
dit heeft met een string te maken toch en neit met een array en dan snap ik hem nog niet
wat is dat prototype gedoe? daar had een ander lid het ook al over? staat niet in F1 dat prototype gedoe
Dauntless
%Europe/Berlin %504 %2005, 13:06
Dat is idd wat je moet hebben.
Zet gewoon ergens in je .fla die code:
Array.prototype.removeValue = function (string) {
for(i=0 ; i < this.length ; i++){
if(this[i] == string){
this.splice(i, 1);
}
}
}
Dat prototype wil zeggen dat je de Array classe uitbreid met je eigen method. Zoals je al Array.splice en Array.split, etc hebt, heb je nu ook Array.removeValue().
Als je dus een element uit een array wilt verwijderen moet je dat zo doen:
myAr_array.removeValue("3");
latino
%Europe/Berlin %518 %2005, 13:26
maar de vraag is:
heb ik dan een nieuwe array met een minder of is er uit mijn huidige array 1 weg. Dit is belangrijk...omdat:
ik hang een functie aan een button event (on relaese).
daarna wil ik dus bijv drie eruit hebebn en met de rest van de array verder gaan, maar hij moet de oorspronkelijke array behouden omdat ik die weer nodig heb bij een volgende event (bijv 4). Dus dan moeten alle nummertjes er weer zijn en de vier eruit zodat ik weer verder kan met die array zonder 4
volgens mij doet deze functie dat niet
Dauntless
%Europe/Berlin %522 %2005, 13:32
Dan wordt de waarde uit de array verwijderd :). Niets nieuwe array, gewoon dezelfde die je dan verder kan gebruiken :).
latino
%Europe/Berlin %527 %2005, 13:39
:) maar ik moet juist een nieuwe krijgen zodat ik daarna de oorspronkelijk (met alle getalletjes) weer kan gebruiken...
of wordt die oorspronkleijek array gereset als ik hem opnieuw aanroep? dat alle getallen er weer instaat?
of is het zo dat als ik op een button klik en ik dit krijg:
var myAr_array:Array = new Array("1", "2", "3", "4", "5");
weer een buttonclick:
var myAr_array:Array = new Array( "2", "3", "4", "5");
weer een buttonclick:
var myAr_array:Array = new Array( "3", "4", "5");
weer een buttonclick:
var myAr_array:Array = new Array( "4", "5");
weer een buttonclick:
var myAr_array:Array = new Array("5");
dat is niet de bedoeling namelijk
ik moet na elke klik weer beschikking hebben over de gehele array met alle getallen, zodat ik daar een getal uit haal en met een nieuwe array(die met een getal minder) wat kan doen...etc met de volgende klik:
click
oorspronkelijke array->een array met getal minder -> iets mee doen
click
oorspronkelijke array->een array met getal minder -> iets mee doen
Dauntless
%Europe/Berlin %544 %2005, 14:04
Zo dan?
Array.prototype.removeValue = function (string) {
var newArray:Array = new Array();
for(i=0 ; i < this.length ; i++){
if(this[i] != string){
newArray.push(this[i]);
}
}
return newArray;
}
//Usage:
var original:Array = new Array("Dauntless", "foo", "blaat", "flashfocus");
var newArray = original.removeValue("foo");
trace(newArray);
theFlashWizard
%Europe/Berlin %544 %2005, 14:04
backupArray = myArray
myArray.splice(random(arraynaam.length),1)
//gebruik die myArray met cijfer minder
myArray = backupArray
zoiets?
maar iets zegt me dat je dit niet handig doet.. dat het simpeler kan zonder array.. kun je de bedoeling ervan uitlegge?
latino
%Europe/Berlin %555 %2005, 14:19
ok ik heb dus (zoals je weet :) ) deze pgina aan het maken
link (http://www.audiovisueeladviseur.nl/v1/)
1. klik op de foto linksboven
2. als je dat gedaan hebt wil ik in dat grijze vlak acht kleine fototje hebben
Op de begin pagina staan negen fotos/onderwerpen. Als je dus op een foto klikt kom je in dat onderwerp. Er moeten dus 8 fotos komen om naar de andere onderwerpen te gaan zonder weer terug te hoeven naar de eerste pagina. Dus heb ik er 8 nodig min dus diegene waar je je begeeft.
Aangezien ik de pages 1 tm8 acht heb genoemd en deze als een variable doorgeef, wil ik dus de goede fototjes laden (dmv duplicatemovie) behalve dus diegene waar je je al op bevind...snap je?
Dauntless
%Europe/Berlin %558 %2005, 14:23
Array.prototype.removeValue = function (string) {
var newArray:Array = new Array();
for(i=0 ; i < this.length ; i++){
if(this[i] != string){
newArray.push(this[i]);
}
}
return newArray;
}
//Usage:
var fotos:Array = new Array("foto1.jpg", "foto2.jpg", "foto3.jpg", "foto4.jpg");
var fotosTeLaden = fotos.removeValue("foo");
trace(fotosTeLaden);
Dus nu moet je gewoon daar alle foto's uit 'fotosTeLaden' inladen.
Snap je?
latino
%Europe/Berlin %571 %2005, 14:42
ja zoiets :) en die
return newArray; geeft dus bv deze:
("foto2.jpg", "foto3.jpg", "foto4.jpg");
ik kan dus de newArray doorlopen begrijp ik etc
Dauntless
%Europe/Berlin %576 %2005, 14:49
ja zoiets :) en die
return newArray; geeft dus bv deze:
("foto2.jpg", "foto3.jpg", "foto4.jpg");
ik kan dus de newArray doorlopen begrijp ik etc
Jup :)
latino
%Europe/Berlin %590 %2005, 15:09
leuk hoor dit :) thanks
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.