[英]My filter is returning the whole object and not just the property
我想返回一個 id 數組,但正在返回整個對象。 我有正確的語法嗎?
const docIds = this.claim.claimDocuments.filter(doc => { if (doc.status !== 'Submitted') { return doc.id; } });
filter
不會改變數組,它只是選擇通過邏輯測試的條目。 然后,您需要map
filter
的輸出以僅返回id
值:
const docIds = this.claim.claimDocuments
.filter(doc => doc.status !== 'Submitted')
.map(doc => doc.id);
如果您想從另一個項目的一部分創建一個數組,同時將每個傳遞的項目轉換為其他項目,則必須使用不同的方法,可能是通過初始化數組,然后在迭代時推入if
:
const docIds = [];
for (const doc of this.claim.claimDocuments) {
if (doc.status !== 'Submitted') {
docIds.push(doc.id);
}
}
或者使用.reduce
:
const docIds = this.claim.claimDocuments.reduce((a, doc) => {
if (doc.status !== 'Submitted') {
a.push(doc.id);
}
return a;
}, []);
或者使用.filter
后跟.map
,盡管這需要對某些項目進行兩次迭代。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.