AngularJS如何正确使用_find函数返回子项

时间:2018-06-14 10:11:03

标签: angularjs find lodash

我使用lodash _find来循环遍历一个数组,但我无法做到的,就是当条件满足时,我想返回一个特定的数组子元素。

private getTaskForPersonAndDay(personalId: number, day: moment.Moment) {
      return _.find(this.tasks, a => a.personalId === personalId && a.date === day.valueOf());
    }

tasks的结构如下:

export interface tasks{
    id: string;
    personalId: number;
    date: number;
    task: Array<Interfaces.taskList>;    
  }

所以基本上这会返回与用户ID匹配的整个数组以及该任务的安排日期。

但我想要的是在task

中返回元素tasks

因为我将使用此函数的返回来填充数组,结构如下:

task: Interfaces.taskList;

所以它必须返回一个类型Interfaces.taskList而不是Interfaces.tasks,就像它现在返回一样!

你怎么能这样做?

非常感谢

1 个答案:

答案 0 :(得分:1)

保存对返回的tasks的引用,如果找到匹配项,则返回task属性:

private getTaskForPersonAndDay(personalId: number, day: moment.Moment) : Interfaces.taskList[] {

    const tasks = _.find(this.tasks, a => a.personalId === personalId && a.date === day.valueOf());

    return tasks ? tasks.task : null;
}