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
splice
elimine 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
splice
cambia la matriz original, por lo que el valor que recupera es el elemento que se eliminó, pero si echa un vistazo almyArray
elemento 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
myArray
aquí hay una gran variedad de objetos.Aquí hay otra opción usando jQuery grep. Pase
true
como 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
true
significa que devolverá una matriz de elementos que falla la lógica de su función, losfalse
medios 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