![](/img/trans.png)
[英]How to return a boolean true if all the values in an array are true (strings) and if one of the value is false(string) stop checking using Javascript
[英]Checking for Boolean Values in Typescript/Javascript Pertaining to “true”, “false”, and “undefined”
我可以確保布爾檢查的唯一結果是“ true”或“ false”的顯式方法是什么? 換句話說,我想盡可能排除“ undefined”。 兩種選擇是:
功能一:
private canMove = (currentOptionSelected): boolean => {
if (this.client.services) {
for (const service of this.client.services) {
if (service === currentOptionSelected) {
if (service.currentStage === 'enrolling') {
return true;
}
}
}
}
}
功能二:
private canMove = (currentOptionSelected): boolean => {
if (this.client.services) {
for (const service of this.client.services) {
if (service === currentOptionSelected) {
return service.currentStage === 'enrolling';
}
}
}
}
編輯:在評論者的回應下,一個更可靠的選擇是顯式返回'false',如下所示:
private canMove = (currentOptionSelected): boolean => {
if (this.client.services) {
for (const service of this.client.services) {
if (service === currentOptionSelected) {
//You should also rethink this return statement
return service.currentStage === 'enrolling';
}
}
}
return false;
}
我將通過詢問是否存在“ client.services”的情況添加一個額外的“ return'false'”來跟進,但是“ currentStage!=='enrolling”會更好嗎? 還是在這種情況下第二個“ else”子句是多余的?
其次,他寫道,我應該根據函數中的返回位置重新考慮return語句。 替代方案是什么? 簡而言之,我正在嘗試找到最健壯但簡潔的方法來編寫此函數。
這些不相等。 在第一個版本返回undefined
某些情況下,第二個版本返回false
。 調用者檢查該值是否明確=== false
將觀察到不同的行為。
兩者都可以返回undefined
,這可能不是很大。 最好總是返回true
或false
的實際值
簡短的回答是No ,它們不是等效的:
false
。 service.currentStage !== 'enrolling'
則第二個可以返回false
。 但是正如Ryan所述,兩者都可以返回undefined
,您應該避免這種情況,只要不滿足條件,就需要顯式返回false
。
這應該是您的代碼:
private canMove = (currentOptionSelected): boolean => {
if (this.client.services) {
for (const service of this.client.services) {
if (service === currentOptionSelected) {
//You should also rethink this return statement
return service.currentStage === 'enrolling';
}
}
}
return false;
}
注意:
return false;
當this.client.services
undefined
時,這里將確保您返回false
。 for
循環中使用return
語句是一個非常糟糕的主意,實際上您只會進行一次迭代。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.