javascript - Parametreler dizisi verildiğinde, nesneler dizisinden dizi oluştur


Benim bu dizim var:

course_ids: [11, 70, 3]

Ve bu nesneler dizisi:

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',
}]

Bu ikisi göz önüne alındığında, bir course_hour_ids: [56, 72, 12] dizisi yapmak istiyorum. Bunu React.js kullanarak nasıl yapabilirim?

Cevap #1

Önce filtrele sonra eşle

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);

Cevap #2

İlk diziyi filtreleyebilir ve ardından sonuç dizisini course_hour_id üzerine şu şekilde eşleyebilirsiniz:

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))