我有一个这样的数组:var y = [1,2,3];
我想从数组y中移除2。
如何使用jQuery从数组中删除一个特定的值?我尝试过pop(),但它总是删除最后一个元素。
我有一个这样的数组:var y = [1,2,3];
我想从数组y中移除2。
如何使用jQuery从数组中删除一个特定的值?我尝试过pop(),但它总是删除最后一个元素。
当前回答
首先检查元素是否存在于数组中
$.inArray(id, releaseArray) > -1
如果数组中存在该元素,则返回该元素的下标,否则返回-1
releaseArray.splice($.inArray(id, releaseArray), 1);
现在,如果找到这个元素,上面的行将从数组中移除。总结下面的逻辑是检查和从数组中删除元素所需的代码。
if ($.inArray(id, releaseArray) > -1) {
releaseArray.splice($.inArray(id, releaseArray), 1);
}
else {
releaseArray.push(id);
}
其他回答
//in case somebody needs something like this: multidimensional array (two items)
var ar = [[0,'a'],[1,'b'],[2,'c'],[3,'d'],[4,'e'],[5,'f']];
var removeItem = 3;
ar = jQuery.grep(ar, function(n) {
return n[0] != removeItem; //or n[1] for second item in two item array
});
ar;
我的版本user113716的答案。如果没有找到匹配,他就会删除一个值,这是不好的。
var y = [1, 2, 3]
var removeItem = 2;
var i = $.inArray(removeItem,y)
if (i >= 0){
y.splice(i, 1);
}
alert(y);
如果找到匹配项则删除1项,如果没有匹配项则删除0项。
工作原理:
美元。inArray(value, array)是一个jQuery函数,用于查找数组中值的第一个索引 如果未找到值,则返回-1,因此在执行删除之前检查i是否是有效的索引。删除索引-1意味着删除最后一个,这在这里没有帮助。 .splice(index, count)删除从index开始的count个值,所以我们只需要1的计数
试试这个,对我有用
_clientsSelected = ["10", "30", "12"];
function (removeItem) {
console.log(removeItem);
_clientsSelected.splice($.inArray(removeItem, _clientsSelected), 1);
console.log(_clientsSelected);
`enter code here`},
一个工作的JSFIDDLE
你可以这样做:
var y = [1, 2, 2, 3, 2]
var removeItem = 2;
y = jQuery.grep(y, function(value) {
return value != removeItem;
});
结果:
[1, 3]
http://snipplr.com/view/14381/remove-item-from-array-with-jquery/
/** SUBTRACT ARRAYS **/
function subtractarrays(array1, array2){
var difference = [];
for( var i = 0; i < array1.length; i++ ) {
if( $.inArray( array1[i], array2 ) == -1 ) {
difference.push(array1[i]);
}
}
return difference;
}
然后可以在代码中的任何地方调用该函数。
var I_like = ["love", "sex", "food"];
var she_likes = ["love", "food"];
alert( "what I like and she does't like is: " + subtractarrays( I_like, she_likes ) ); //returns "Naughty :P"!
这在所有情况下都有效,并避免了上述方法中的问题。希望有帮助!