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