javascript - examples - versión jquery de array.contains
jquery link (4)
jQuery.inArray devuelve el primer índice que coincide con el elemento que buscó o -1 si no se encuentra:
if($.inArray(valueToMatch, theArray) > -1) alert("it''s in there");
No deberías necesitar una matriz. Retirada. Use empalme:
theArray.splice(startRemovingAtThisIndex, numberOfItemsToRemove);
O bien, puede realizar una "eliminación" utilizando la herramienta jQuery.grep :
var valueToRemove = ''someval'';
theArray = $.grep(theArray, function(val) { return val != valueToRemove; });
¿Puede jQuery probar una matriz para detectar la presencia de un objeto (ya sea como parte de la funcionalidad principal o mediante un complemento disponible)?
Además, estoy buscando algo como array.remove
, que eliminaría un objeto dado de una matriz. ¿Puede jQuery manejar esto por mí?
Si su lista contiene una lista de elementos, puede usar jQuery.not o jQuery.filter para hacer su "array.remove". (Respuesta agregada debido a la alta puntuación de google de su pregunta original).
Encontré la manera de eliminar el objeto:
foot = { bar : ''test''};
delete foot[bar];
Esto no es jQuery, pero en una línea puede agregar un práctico método ''contains'' a las matrices. Encuentro que esto ayuda con la legibilidad (especialmente para gente de pitón).
Array.prototype.contains = function(a){ return this.indexOf(a) != -1 }
ejemplo de uso
> var a = [1,2,3]
> a.contains(1)
true
> a.contains(4)
false
Del mismo modo para eliminar
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]
O bien, si desea que devuelva la cosa eliminada en lugar de la matriz alterada, entonces
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]