Validere duplikater i en liste

Dersom du har en liste over verdier i en funksjon, og du bare ønsker en enkelt av hver verdi, kan du bruke dette eksempelet til å validere dette.

Scripet er som følger:

var liste=Funksjon; //dette er din liste over verdier kan være datakilde, webservice eller funksjon
var duplikat=false; //dette er flagget vi reiser dersom det finnes et duplikat

for(var i=0, i<sizeof(liste), i++){                  //begynner å telle på 0
	for(var ix=i+1,ix<sizeof(liste), ix++){          //setter ix til å være ett nummer større enn i - slik at den ikke validerer seg selv.
		if(liste[i]==liste[ix]){duplikat=true};    
	};
};

return duplikat;

Her looper jeg listen. For hver verdi i listen, looper jeg de neste verdiene i samme liste. Hvis noen av de etterfølgende verdiene matcher, setter jeg flagget “duplikat=true”. Hvis det ikke er match, forblir den false. Jeg vet altså ikke hvor mange matcher jeg får.

Her er tabellen for gjennomgang av en liste med epostadresser. i er den første for-loopen, mens ix er den indre for-loopen. Her har jeg logget epost[i] og epost[ix] for hver loop. For enkelthets skyld har jeg i listen brukt min egen epost med et løpenummer for å gjøre epostene unike. Da blir resultatet slik:

epost i nr0 helge@acos.no0		første for-løkke verdi 0
epost ix nr1 helge@acos.no1			indre for-løkke verdi 1
epost ix nr2 helge@acos.no2			indre for-løkke verdi 2
epost ix nr4 helge@acos.no4			indre for-løkke verdi 3
epost ix nr3 helge@acos.no3			indre for-løkke verdi 4
epost ix nr5 helge@acos.no5			indre for-løkke verdi 5
epost ix nr6 helge@acos.no6			indre for-løkke verdi 6
epost i nr1 helge@acos.no1		første for-løkke verdi 1
epost ix nr2 helge@acos.no2			indre for-løkke verdi 2
epost ix nr3 helge@acos.no3			indre for-løkke verdi 3
epost ix nr4 helge@acos.no4			indre for-løkke verdi 4
epost ix nr5 helge@acos.no5			indre for-løkke verdi 5
epost ix nr6 helge@acos.no6			indre for-løkke verdi 6
epost i nr2 helge@acos.no2		første for-løkke verdi 2
epost ix nr3 helge@acos.no3			indre for-løkke verdi 3
epost ix nr4 helge@acos.no4			indre for-løkke verdi 4
epost ix nr5 helge@acos.no5			indre for-løkke verdi 5
epost ix nr6 helge@acos.no6			indre for-løkke verdi 6
epost i nr3 helge@acos.no3		første for-løkke verdi 3
epost ix nr4 helge@acos.no4			indre for-løkke verdi 4
epost ix nr5 helge@acos.no5			indre for-løkke verdi 5
epost ix nr6 helge@acos.no6			indre for-løkke verdi 6
epost i nr4 helge@acos.no4		første for-løkke verdi 4
epost ix nr5 helge@acos.no5			indre for-løkke verdi 5
epost ix nr6 helge@acos.no6			indre for-løkke verdi 6
epost i nr5 helge@acos.no5		første for-løkke verdi 5
epost ix nr6 helge@acos.no6			indre for-løkke verdi 6
epost i nr6 helge@acos.no6		første for-løkke verdi 6

Dette scriptet er universelt, så det kan brukes med alle mulige verdier. Slik det er satt opp nå fungerer den bare med 1-dimensjonelle arrays, men kan nok sikkert brukes for fler-dimensjonelle hvis man klarer å indeksere dem riktig.

Håper dette kan være nyttig for deg også :slight_smile:

2 Likes