映射内部映射而不更改原始数组



当前我正在通过和数组进行映射,然后进行第二次映射,试图从第二个数组中删除不需要的对象。

const activities = self.periods.map(period => {

period.activities.map(activity => {
let showActivity = false
if(activity.teacher_id === teacherId){
showActivity = true
}
else if(activity.substitute){
if(
activity.substitute.type === 'tutor' &&
activity.substitute.id == tutorId
){
showActivity = true
}
else if(
activity.substitute.type === 'teacher' &&
activity.substitute.id == teacherId
){
showActivity = true
}
}
if(showActivity){
return activity
}
else{
return null
}
})
return period
})

目前,尽管返回null的if语句确实被触发,但它似乎只是原样返回periods数组。

Array.map返回与原始数组相同长度的数组。您应该使用Array.forEach

const activities = []
self.periods.forEach(period => {
...
if (...) {
activities.push(period)
}
})

最新更新