Ragazzi devo costruirmi una funzione per verificare se un valore é già presente in un array.
Ho un array global che memorizza degli elementi, e devo aggiungerne uno nuovo se non é un valore duplicato, oppure ritornare false.
Io ho costruito prima un array globale che richiamo dall'interno della funzione in questo modo:
var myVector = new Array(0);
function addItem(val)
{
duplicated = false;
for (i = 0; i < myVector.length; i++) {
if (myVector[i] == val) {
//duplicated = true;
return false;
}
}
myVector[myVector.length] = val;
return true;
}
Praticamente leggo i dati da una select multiple ed eseguo un loop for.
Dentro questo loop chiamo la funzione addItem(val)
...
for (i = 0; i < cap1.length; i++) {
if (cap1.options[i].selected) {
//recupero id e valore letterale
v = cap1.options[i].value;
t = cap1.options[i].text;
//verifico se é un duplicato
if (addItem(v)) {
//se true continuo
}
}
Questa funzione la richiamo tramite un pulsante, quindi chiamandola spesso
oppure cancellando elementi dall'array e ripopolandolo lo script mi va in blocco il browser.
Sapete se esiste una funzione più ottimizzata per fare questa operazione ?
Grazie