2013-02-09 17 views
10

配列に値があるかどうかを確認しようとしています。値が配列内に存在しない場合は、配列に追加する必要があります。値がすでに存在する場合は、配列を削除する必要があります。jQuery:配列に値があるかどうかを確認し、そうであれば削除します。

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 
    } 


}); 

答えて

25

値を探すためにinArrayメソッドを使用して、項目を追加または削除するpushsplice方法:配列の値を検索し、削除/追加する

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

シンプルなJavaScriptプログラム

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 
} 
関連する問題