Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

207
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda