jquery版本的array.contains
jQuery可以testing一个数组是否存在一个对象(作为核心function的一部分或通过一个可用的插件)?
此外,我正在寻找像array.remove
,这将从数组中删除给定的对象。 jQuery能为我处理这个吗?
jQuery.inArray返回与您search的项目相匹配的第一个索引,如果找不到则返回-1:
if($.inArray(valueToMatch, theArray) > -1) alert("it's in there");
你不应该需要一个array.remove。 使用拼接:
theArray.splice(startRemovingAtThisIndex, numberOfItemsToRemove);
或者,您可以使用jQuery.grep util执行“删除”操作:
var valueToRemove = 'someval'; theArray = $.grep(theArray, function(val) { return val != valueToRemove; });
如果你的列表包含元素列表,那么你可以使用jQuery.not或jQuery.filter来做你的“array.remove”。 (由于您的原始问题的高分数,因此增加了答案)。
我find了删除对象的方法:
foot = { bar : 'test'}; delete foot[bar];
这不是jQuery,但是可以在一行中为数组添加一个方便的“包含”方法。 我觉得这有助于可读性(特别是对于Python的民间)。
Array.prototype.contains = function(a){ return this.indexOf(a) != -1 }
示例用法
> var a = [1,2,3] > a.contains(1) true > a.contains(4) false
同样为删除
Array.prototype.remove = function(a){if (this.contains(a)){ this.splice(this.indexOf(a),1)}; return this} > var a = [1,2,3] > a.remove(2) [1,3]
或者,如果你想要它返回的东西删除而不是改变的数组,然后
Array.prototype.remove = function(a){if (this.contains(a)){ return this.splice(this.indexOf(a),1)}} > var a = [1,2,3] > a.remove(2) [2] > a [1,3]