Búsqueda de sitios web

javascript - Dada una matriz de parámetros, crear una matriz a partir de una matriz de objetos


Tengo este arreglo:

course_ids: [11, 70, 3]

Y este conjunto de objetos:

arr: [{
    course_id: 11,
    course_hour_id: 56,
    name: 'John',
},
{
    course_id: 70,
    course_hour_id: 72,
    name: 'Lily',
},{
    course_id: 3,
    course_hour_id: 12,
    name: 'Mike',
}]

Dado estos dos, quiero hacer un arreglo de course_hour_ids: [56, 72, 12]. ¿Cómo puedo hacer eso usando React.js?

Respuesta #1

Primero filtrar y luego mapear

let objArray = [
  {
    course_id: 11,
    course_hour_id: 56,
    name: 'John',
  },
  {
    course_id: 70,
    course_hour_id: 72,
    name: 'Lily',
  },
  {
    course_id: 3,
    course_hour_id: 12,
    name: 'Mike',
  }
];

let course_ids = [11, 70, 3];

let result = objArray.filter(array => course_ids.some(filter => filter == array.course_id)).map(a => a.course_hour_id);
console.log(result);

Respuesta #2

Podrías filtrar el array inicial y luego mapear el array resultante en course_hour_id como:

let arr = [
{
course_id: 11,
course_hour_id: 56,
name: 'John',
},
{
course_id: 70,
course_hour_id: 72,
name: 'Lily',
},{
course_id: 3,
course_hour_id: 12,
name: 'Mike',
}
]

let course_ids = [11, 70, 3];

let res = arr.filter(el => {
   return course_ids.includes(el.course_id);
})

console.log(res.map(el => el.course_hour_id))