Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

203
Vistas
Eliminar objeto de la matriz de objetos

Tengo una serie de objetos:

 [{"value":"14","label":"7"},{"value":"14","label":"7"},{"value":"18","label":"7"}]

Cómo puedo eliminar este elemento {"value":"14","label":"7"} que da como resultado la nueva matriz:

 [{"value":"14","label":"7"},{"value":"18","label":"7"}]

?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

En ES6 (o usando es6-shim ) puede usar Array.prototype.findIndex junto con Array.prototype.splice :

 arr.splice(arr.findIndex(matchesEl), 1); function matchesEl(el) { return el.value === '14' && el.label === '7'; }

O si una copia de la matriz está bien (y disponible desde ES5), Array.prototype.filter es el camino a seguir:

 var withoutEl = arr.filter(function (el) { return !matchesEl(el); });
over 4 years ago · Santiago Trujillo Denunciar

0

Solución con Identidad

Si tiene identidad de objeto, no solo igualdad de objetos (es decir, está tratando de eliminar un objeto específico de la matriz, no solo un objeto que contiene los mismos datos que un objeto existente), puede hacerlo de manera muy simple con splice e indexOf:

 a = {x:1} b = {x:2} arr = [a,b]

Digamos que desea eliminar b:

 arr.splice( arr.indexOf(b), 1 );

Solución con Igualdad

La pregunta no deja claro si estamos tratando con identidad o igualdad. Si tiene igualdad (dos objetos que contienen las mismas cosas, que se ven iguales entre sí, pero que en realidad no son el mismo objeto), necesitará una pequeña función de comparación, que podemos pasar a findIndex.

 a = {x: 1}; b = {x: 2}; arr = [a, b];

Ahora queremos eliminar c, que es igual a, pero no lo mismo que a:

 c = {x: 1} index = arr.findIndex( (i) => ix === cx ) if (index !== -1) { arr.splice( index, 1 ); }

Tenga en cuenta que estoy pasando una función lambda de estilo ES6 aquí como el primer parámetro para findIndex.

A menos que tenga el lujo de escribir solo para navegadores perennes, probablemente querrá usar un transpilador como Babel para usar esta solución.

Solución con inmutabilidad

Si le importa la inmutabilidad y desea devolver una nueva matriz, puede hacerlo con el filtro:

 a = {x: 1}; b = {x: 2}; arr = [a, b];

Quedémonos con todo lo que no sea:

 newArr = arr.filter((x) => x != a)
over 4 years ago · Santiago Trujillo Denunciar

0

Tratar:

 var ar = [{"value":"14","label":"7"},{"value":"14","label":"7"},{"value":"18","label":"7"}]; for(var i=0; i < ar.length; i++) { if(ar[i].value == "14" && ar[i].label == "7") { ar.splice(i,1); } }

manifestación

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda