所以我知道嵌套代碼會很快變得丑陋。因此,我查找了一種防止嵌套的方法,發現您可以執行以下操作
if (user == null) return;
console.log('Deleting');
user.delete();
而不是像那樣使用卷曲的括號
if (user != null) {
console.log('Deleting');
user.delete();
}
Howe
ver 我真的看不出這在使用 if-else 陳述句時有什么幫助。例如:我在我的專案中有這段代碼,我真的很想以比這更簡潔的方式撰寫。但我正在努力弄清楚如何做到這一點。
if (parseInt(year) == joinTime.getFullYear()) {
if (parseInt(month) == joinTime.getMonth() 1) {
if (parseInt(day) == joinTime.getDay()) {
channel.send(message);
} else {
comparison(day, hour, minute);
}
} else {
comparison(day, hour, minute);
}
} else {
comparison(day, hour, minute);
}
uj5u.com熱心網友回復:
我不認為洗掉大括號是處理嵌套 if else 陳述句時的解決方案。在這種情況下,我會嘗試限制使用的陳述句數量。您可以將此代碼轉換為:
if(parseInt(year) == joinTime.getFullYear() && parseInt(month) == joinTime.getMonth() 1 && parseInt(day) == joinTime.getDay()){
channel.send(message);
}
else {
comparison(day, hour, minute);
}
或者您可以使用決議的年、月和日來構造一個日期物件,然后將其與 joinTime 進行比較。
uj5u.com熱心網友回復:
你可以這樣寫
if (
parseInt(year) == joinTime.getFullYear() &&
parseInt(month) == joinTime.getMonth() 1 &&
parseInt(day) == joinTime.getDay()
) {
channel.send(message);
} else {
comparison(day, hour, minute);
}
uj5u.com熱心網友回復:
風格在旁觀者的眼中,但假設你想要更簡潔的代碼,那么我會做這樣的事情:
const yearMatch = (parseInt(year) == joinTime.getFullYear());
const monthMatch = (parseInt(month) == joinTime.getMonth() 1);
const dayMatch = (parseInt(day) == joinTime.getDay());
if (yearMatch && monthMatch && dayMatch) {
channel.send(message);
} else {
comparison(day, hour, minute);
}
或者,如果您不關心額外的return(并且它不會破壞您的邏輯):
const yearMatch = (parseInt(year) == joinTime.getFullYear());
const monthMatch = (parseInt(month) == joinTime.getMonth() 1);
const dayMatch = (parseInt(day) == joinTime.getDay());
if (yearMatch && monthMatch && dayMatch) return channel.send(message);
comparison(day, hour, minute);
當然,請根據需要更改變數名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/370615.html
