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