簡體   English   中英

當一個數組有一個值,即使它是一個空字符串,也要處理條件邏輯嗎?

[英]Handling Conditional Logic When an Array Has One Value Even If It's an Empty String?

我遇到一種情況,用戶可以鍵入郵政編碼值以過濾某些數據。 我還設置了此過濾器,以便保留最后一個值,以便如果用戶重新啟用過濾器,則在重新啟用過濾器后,這些值可立即用於再次過濾數據。

我遇到的問題是,即使清除了過濾器,我的過濾器值也會被傳遞。 因為這是一個值數組,它們通過POST請求的主體從Angular應用程序傳遞到Mongoose / MongoDB,所以有效過濾的是[''] 這使我得到零結果-毫不奇怪。

所以我試圖提出一些條件檢查,以防止在結果為['']時觸發過濾器。 我不能簡單地基於array.length排除,因為即使此值也被認為是長度為1的數組-如果實際的郵政編碼存在['77799'] ,情況也會如此。 這是我嘗試做的事情:

    if ( zipArray !== [] && zipArray !== [''] && zipArray[0] !== '') {   
      console.log(zipArray);
      console.log(zipArray.length);
      this.sendZipcode.emit(zipArray);
    }

zipArray === [''] ,我還能嘗試什么排除發射該值, zipArray === ['']該值仍將接受具有['77799']類的值的數組? 我可以檢查數組中存在的任何元素中的最少字符數嗎? 有什么建議嗎?

您可以使用filter從數組中刪除所有不需要的值,然后檢查是否還有有效的郵政編碼可發送到服務器:

let zipArrayWithNoEmptyZip = zipArray.filter(zip => zip.length > 0);
if (zipArrayWithNoEmptyZip.length > 0) {   
  console.log(zipArrayWithNoEmptyZip);
  console.log(zipArrayWithNoEmptyZip.length);
  this.sendZipcode.emit(zipArrayWithNoEmptyZip);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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