2013-02-09 8 views
10

Sto provando a verificare se c'è già un valore nella matrice. Se il valore non esiste nell'array, dovrebbe essere aggiunto all'array, se il valore esiste già, dovrebbe essere eliminato.jQuery: controlla se il valore è nella matrice, in caso affermativo, cancella, in caso contrario, aggiungi

var selectArr = []; 
$('.media-search').mouseenter(function(){ 
    var $this = $(this); 
    $this.toggleClass('highlight'); 
}).mouseleave(function(){ 
    var $this = $(this); 
    $this.toggleClass('highlight'); 

}).on('click',function(){ 
    var dataid = $(this).data('id'); 

    if(selectArry){ // need to somehow check if value (dataid) exists. 
    selectArr.push(dataid); // adds the data into the array 
    }else{ 
    // somehow remove the dataid value if exists in array already 
    } 


}); 

risposta

25

utilizzare il metodo inArray per cercare un valore, e le push e splice metodi per aggiungere o rimuovere elementi:

var idx = $.inArray(dataid, selectArr); 
if (idx == -1) { 
    selectArr.push(dataid); 
} else { 
    selectArr.splice(idx, 1); 
} 
0

programma JavaScript semplice per trovare e aggiungere/rimuovere il valore nella matrice

var myArray = ["cat","dog","mouse","rat","mouse","lion"] 
var count = 0; // To keep a count of how many times the value is removed 
for(var i=0; i<myArray.length;i++) { 
    //Here we are going to remove 'mouse' 
    if(myArray[i] == "mouse") { 
     myArray .splice(i,1); 
     count = count + 1; 
    } 
} 
//Count will be zero if no value is removed in the array 
if(count == 0) { 
    myArray .push("mouse"); //Add the value at last - use 'unshife' to add at beginning 
} 

//Output 
for(var i=0; i<myArray.length;i++) { 
    console.log(myArray [i]); //Press F12 and click console in chrome to see output 
}