眼眸繁星
2023-08-24 21:07:45
if (valid === null) { return '';} else if (!valid) { return 'is-not-valid';} else if (valid) { return 'is-valid';} else { return '';}我的代碼中有上面的 if-else-if 鏈,試圖看看是否可以在一兩行中編寫相同的邏輯。
2 回答

哆啦的時(shí)光機(jī)
TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
由于您想要區(qū)分三種類型的值,因此您必須至少進(jìn)行兩次檢查。這個(gè)else案子永遠(yuǎn)不會(huì)被擊中,因?yàn)?或!valid將會(huì)valid被擊中true。這也意味著您可以將最后else if一個(gè)減少為else:
if (valid === null) {
return '';
} else if (!valid) {
return 'is-not-valid';
} else {
return 'is-valid';
}
但是您可以使用條件運(yùn)算符來壓縮此邏輯:
return valid === null ? '' : (valid ? 'is-valid' : 'is-not-valid');

慕婉清6462132
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
盡管我認(rèn)為您的示例(沒有多余的 else 塊)看起來相當(dāng)不錯(cuò),但您可以將其寫在一行上,如下所示:
return valid === null ? '' : (valid ? 'is-valid' : 'is-not-valid')
不過我更喜歡原版
添加回答
舉報(bào)
0/150
提交
取消