簡體   English   中英

我的過濾器正在返回整個對象,而不僅僅是屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM