Tengo una variedad de objetos así:
var myArray = [
{field: 'id', operator: 'eq', value: id},
{field: 'cStatus', operator: 'eq', value: cStatus},
{field: 'money', operator: 'eq', value: money}
];
¿Cómo elimino uno específico en función de su propiedad?
Por ejemplo, ¿cómo eliminaría el objeto de matriz con 'dinero' como propiedad del campo?
javascript
jquery
arrays
object
properties
imperium2335
fuente
fuente

filter()solo está disponible para Internet Explorer 9+filter()crea una nueva matriz, lo cual está bien si puede reasignar la variable y saber que no hay otras áreas de código que tengan referencias a ella. Esto no funcionará si necesita modificar específicamente el objeto de matriz original.Itere a través de la matriz y
spliceelimine los que no desea. Para un uso más fácil, itere hacia atrás para que no tenga que tener en cuenta la naturaleza viva de la matriz:fuente
Supongamos que desea eliminar el segundo objeto por su propiedad de campo.
Con ES6 es tan fácil como esto.
fuente
splicecambia la matriz original, por lo que el valor que recupera es el elemento que se eliminó, pero si echa un vistazo almyArrayelemento que falta.Puede usar findIndex de lodash para obtener el índice del elemento específico y luego empalmarlo.
Actualizar
También puede usar findIndex () de ES6
fuente
myArrayaquí hay una gran variedad de objetos.Aquí hay otra opción usando jQuery grep. Pase
truecomo el tercer parámetro para garantizar que grep elimine los elementos que coincidan con su función.Si ya está usando jQuery, entonces no se requiere una cuña, lo que podría ser útil en lugar de usar
Array.filter.fuente
En ES6, solo una línea.
:)
fuente
El siguiente es el código si no está utilizando jQuery. Manifestación
También puede usar la biblioteca de subrayado que tiene muchas funciones.
Underscore es una biblioteca de cinturón de utilidades para JavaScript que proporciona una gran cantidad de soporte de programación funcional
fuente
El elemento es un objeto en la matriz. El tercer parámetro
truesignifica que devolverá una matriz de elementos que falla la lógica de su función, losfalsemedios devolverán una matriz de elementos que falla la lógica de su función.fuente
En base a algunos comentarios anteriores, a continuación se encuentra el código de cómo eliminar un objeto en función de un nombre y un valor clave
fuente
Usando la biblioteca lodash :
fuente
La solución de jAndy es probablemente la mejor, pero si no puede confiar en el filtro, puede hacer algo como:
fuente
Usar la biblioteca lodash es tan simple como esto
fuente