• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

234
Vistas
How to filter an array of object inside an array of objects based on an array and also remove properties of that object?
let array1= [
    { "id": 100, name: "A", "details": [{"year": "2012"},{"data": "Test1"}]},
    { "id": 101, name: "B", "details": [{"year": "2013"},{"data": "Test2"}]},
    { "id": 102, name: "C", "details": [{"year": "2014"},{"data": "Test3"}]}
];

const array2= ['2012'];

Result I wanted

{ "id": 100, name: "A", "details": [{"year": "2012"}]}

I know i can filter the array with this code

array1.filter(o => 
  o.details.some(p=> {
    return array2.includes(p.year)
  })
)

But is there a way to remove the objects as well.

almost 3 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

We can reduce to avoid multiple steps

This reduce filters and deletes part of the details array

let array1 = [
    { "id": 100, name: "A", "details": [{"year": "2012"},{"data": "Test1"}]},
    { "id": 101, name: "B", "details": [{"year": "2013"},{"data": "Test2"}]},
    { "id": 102, name: "C", "details": [{"year": "2014"},{"data": "Test3"}]}
];

const array2 = ['2012'];

let array3 = array1.reduce((acc, {id,name,details}) => {
  if (array2.includes(details[0].year)) {
    acc.push({ id, name, details: details[0] })
  }
  return acc
}, [])

console.log(array3)

almost 3 years ago · Juan Pablo Isaza 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda