如何获得子数组?

时间:2018-12-10 19:51:15

标签: javascript arrays angular typescript

我有一个带有子数组的数组,我需要获取子数组(任务ID),我该如何获取它?

array, with a sub-array

onDeleteTask(Id: string) {
  this._taskService.deleteTask(Id).subscribe(data => {
    for (let i = 0; i < this.Notes.length; i++) {
      console.log(this.Notes[i].Tasks.filter(this.Notes.findIndex(e => e.Id === Id)));
    }
  });
}

数据:

[
   {
      "Id":"099c3d99-8f49-4298-934c-1fc5280d6d84",
      "Description":"12312",
      "NoteId":"1a91f108-e869-4427-ab5e-09d2262bfe20",
      "NoteTitle":"SAKI SAKI 5 DOOLLAA"
   },
   {
      "Id":"e74455d5-5002-4ea3-9f58-653440887690",
      "Description":"1",
      "NoteId":"1a91f108-e869-4427-ab5e-09d2262bfe20",
      "NoteTitle":"SAKI SAKI 5 DOOLLAA"
   },
   {
      "Id":"e75d537e-fe97-4dd5-8ca3-9cce5d3a1827",
      "Description":"2",
      "NoteId":"1a91f108-e869-4427-ab5e-09d2262bfe20",
      "NoteTitle":"SAKI SAKI 5 DOOLLAA"
   }
]

我尝试过,但是id不起作用

2 个答案:

答案 0 :(得分:0)

您的filter方法未正确调用:

this.Notes[i].Tasks.filter(this.Notes.findIndex(e => e.Id === Id))

filter接受谓词方法以在数组的每个元素上运行,并且应返回布尔值,但是findIndex返回数字或未定义。您要将findIndex的结果传递给filter,因此本质上您是在进行Tasks.filter(2),这没有任何意义。

我将提供有关如何修复它的建议,但我不确定要使用该阵列做什么。

答案 1 :(得分:0)

如果您只是想首次获得ID,则:

this._taskService.deleteTask(Id).subscribe(data => {
    for (let i = 0; i < this.Notes.length; i++) {
      console.log(this.Notes[i].Tasks[0].Id);
    }
  });

如果您想获取所有ID,则

this.Notes[i].Tasks.map(task => task.Id);