我有一个这样的数组:var y = [1,2,3];
我想从数组y中移除2。
如何使用jQuery从数组中删除一个特定的值?我尝试过pop(),但它总是删除最后一个元素。
我有一个这样的数组:var y = [1,2,3];
我想从数组y中移除2。
如何使用jQuery从数组中删除一个特定的值?我尝试过pop(),但它总是删除最后一个元素。
当前回答
你可以使用underscore.js。这真的让事情变得简单。
在你的例子中,你需要写的所有代码都是-
_.without([1,2,3], 2);
结果是[1,3]。
它减少了你编写的代码。
其他回答
//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)
}
}
}
使用实例
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]]
要使用这个原型函数,您需要将其粘贴到代码中。 然后你可以将它应用到任何带有“点符号”的数组:
someArr.remove('elem1')
有一个简单的解决方案与剪接。根据W3School,拼接语法如下;
array.splice(index, howmany, item1, ....., itemX)
需要索引。指定在什么位置添加/删除项的整数。使用负值指定从数组末尾开始的位置
需要多少。要删除的项的数目。如果设置为0,则不会删除任何项
item1,……, itemX可选。要添加到数组中的新项
请记住,下面的js将从给定数组中弹出一个或多个匹配的项,否则不会删除数组的最后一项。
var x = [1,2,3,4,5,4,4,6,7];
var item = 4;
var startItemIndex = $.inArray(item, x);
var itemsFound = x.filter(function(elem){
return elem == item;
}).length;
Or
var itemsFound = $.grep(x, function (elem) {
return elem == item;
}).length;
所以期末题应该是这样的
x.splice( startItemIndex , itemsFound );
希望这能有所帮助。
不是jQuery的方式,但是… 为什么不用更简单的方法呢?从下面的数组中删除'c'
var a = ['a','b','c','d']
a.splice(a.indexOf('c'),1);
>["c"]
a
["a", "b", "d"]
你也可以使用:(给自己的提示:不要修改你不拥有的对象)
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']
添加是simplera.push('c')
我将用pick_and_remove()函数扩展Array类,如下所示:
var ArrayInstanceExtensions = {
pick_and_remove: function(index){
var picked_element = this[index];
this.splice(index,1);
return picked_element;
}
};
$.extend(Array.prototype, ArrayInstanceExtensions);
虽然看起来有点啰嗦,但现在可以在任何需要的数组上调用pick_and_remove() !
用法:
array = [4,5,6] //=> [4,5,6]
array.pick_and_remove(1); //=> 5
array; //=> [4,6]
你可以在《口袋妖怪》主题的动作中看到这一切。
只是把Sarfraz的答案加上去,很惊讶没有人把它变成一个函数。
如果在数组中不止一次有相同的值,则使用.filter方法使用ddagsan的答案。
函数arrayremovevalue(数组,removeValue){ var newArray = jQuery。grep(数组,函数(值){返回值!= removeValue;}); 返回newArray; } var promoItems = [1,2,3,4]; promoItems = arrayremoveeval (promoItems, 3) console.log (promoItems); promoItems = arrayremoveeval (promoItems, 3);//不移除任何东西 console.log (promoItems); < script src = " https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js " > < /脚本>