我有一个看起来像这样的数组: var y = [1, 2, 3];
我想2从数组中删除y.
如何使用jQuery从数组中删除特定值?我试过pop()但总是删除最后一个元素.
Sar*_*raz 590
一个有效的JSFIDDLE
你可以这样做:
var y = [1, 2, 2, 3, 2]
var removeItem = 2;
y = jQuery.grep(y, function(value) {
return value != removeItem;
});
Run Code Online (Sandbox Code Playgroud)
结果:
[1, 3]
Run Code Online (Sandbox Code Playgroud)
http://snipplr.com/view/14381/remove-item-from-array-with-jquery/
use*_*716 352
使用jQuery,您可以执行以下单行操作:
示例: http ://jsfiddle.net/HWKQY/
y.splice( $.inArray(removeItem, y), 1 );
Run Code Online (Sandbox Code Playgroud)
使用native .splice()和jQuery $.inArray().
dda*_*san 44
jQuery.filter方法很有用.这适用于Array对象.
var arr = [1, 2, 3, 4, 5, 5];
var result = arr.filter(function(elem){
return elem != 5;
});//result -> [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/emrefatih47/ar0dhvhw/
在Ecmascript 6中:
let values = [1,2,3,4,5];
let evens = values.filter(v => v % 2 == 0);
alert(evens);
Run Code Online (Sandbox Code Playgroud)
https://jsfiddle.net/emrefatih47/nnn3c2fo/
vat*_*sal 35
你可以使用underscore.js.这真的让事情变得简单.
在您的情况下,您必须编写的所有代码是 -
_.without([1,2,3], 2);
Run Code Online (Sandbox Code Playgroud)
结果将是[1,3].
它减少了你编写的代码.
Aam*_*idi 31
不是jQuery方式但是......为什么不使用更简单的方法.从以下数组中删除"c"
var a = ['a','b','c','d']
a.splice(a.indexOf('c'),1);
>["c"]
a
["a", "b", "d"]
Run Code Online (Sandbox Code Playgroud)
您还可以使用:(请注意:不要修改您不拥有的对象)
Array.prototype.remove = function(v) { this.splice(this.indexOf(v) == -1 ? this.length : this.indexOf(v), 1); }
var a = ['a','b','c'];
a.remove('c'); //value of "a" is now ['a','b']
Run Code Online (Sandbox Code Playgroud)
添加更简单a.push('c')
小智 18
删除数组中的项目
var arr = ["jQuery", "JavaScript", "HTML", "Ajax", "Css"];
var itemtoRemove = "HTML";
arr.splice($.inArray(itemtoRemove, arr), 1);
Run Code Online (Sandbox Code Playgroud)
yes*_*nik 12
//This prototype function allows you to remove even array from array
Array.prototype.remove = function(x) {
var i;
for(i in this){
if(this[i].toString() == x.toString()){
this.splice(i,1)
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用示例
var arr = [1,2,[1,1], 'abc'];
arr.remove([1,1]);
console.log(arr) //[1, 2, 'abc']
var arr = [1,2,[1,1], 'abc'];
arr.remove(1);
console.log(arr) //[2, [1,1], 'abc']
var arr = [1,2,[1,1], 'abc'];
arr.remove('abc');
console.log(arr) //[1, 2, [1,1]]
Run Code Online (Sandbox Code Playgroud)
要使用此原型函数,您需要将其粘贴到代码中.然后你可以将它应用于任何带有'点表示法'的数组:
someArr.remove('elem1')
Run Code Online (Sandbox Code Playgroud)
小智 6
首先检查元素是否存在于数组中
$.inArray(id, releaseArray) > -1
Run Code Online (Sandbox Code Playgroud)
如果该元素存在于数组中,则上面的行返回该元素的索引,否则返回 -1
releaseArray.splice($.inArray(id, releaseArray), 1);
Run Code Online (Sandbox Code Playgroud)
如果找到,现在上面的行将从数组中删除该元素。总结下面的逻辑是检查和从数组中删除元素所需的代码。
if ($.inArray(id, releaseArray) > -1) {
releaseArray.splice($.inArray(id, releaseArray), 1);
}
else {
releaseArray.push(id);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
在 Javascript 中没有本地方法可以做到这一点。您可以使用库或编写一个小函数来执行此操作:http : //ejohn.org/blog/javascript-array-remove/
小智 5
您可以像这样使用 .not 函数:
var arr = [ 1 , 2 , 3 , 5 , 8];
var searchValue = 2;
var newArr = $(arr).not([searchValue]).get();
Run Code Online (Sandbox Code Playgroud)