我有一个带有子数组的数组,我需要获取子数组(任务ID),我该如何获取它?
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不起作用
答案 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);