我覺得這很難解釋,但我從我的通用數據庫服務傳遞observables到我的組件。正在過濾的可觀察對象的數組TypeScript
的方法是這樣的:
getCollectionThroughDivisionId(id: UUID): Observable<T[]> {
return this._table.watch().map(returnedObjects =>
returnedObjects.filter(returnedObject => returnedObject.divisionId == id)
);
}
上述方法返回一個通用對象的可觀察到的陣列,通過它divisionId過濾
的事情是我需要過濾內部的陣列的方法returnedObject爲一個ID
getCollectionThroughUserId(id: UUID): Observable<T[]> {
return this._table.watch().map(returnedObjects =>
returnedObjects.filter(returnedObject => returnedObject.userId.filter(x => x == id))
);
}
參數userId是一個ID的數組,但默認返回整個集合(沒有thr由於錯誤)。
編輯:
對象模型:
export class Task {
id: string;
name: string;
userId: string[];
projectId: string;
public constructor(init?: Partial<ITask>) {
Object.assign(this, init);
}
}
Json的例子:
{
"id": "TA18XVBJ3584ZM3" ,
"name": "User documentation & technical documentation" ,
"projectId": "PRYH3C72C6CQKZS" ,
"userId": [
"USGC6W4RCERY2ET",
"USKWQYHKB8E3X2U"
]
}
的目標是:遍歷每個任務,檢查用戶id數組,如果它包含了通過用戶id
過濾器可能不是正確的方法在這裏使用,您應該使用地圖,而不是爲了將returnedObjects映射到具有較少用戶ID的對象。 :) – toskv
我不太明白你的意思,我需要檢查每個對象中的每個userId。你有可能給我一個例子嗎? – Laurens
只是爲了得到這個。你想要做的是從returnedObject.userId屬性中過濾出用戶ID。如果你有{userId:[1,2]}和id = 1,你應該找回{userId:[1]}? – toskv