如何在不使用 if/else 的情況下轉換此函式?
function Menu() {
if (!currentUser || currentUser.getValue == 7) {
return false
} else {
return true
}
}
uj5u.com熱心網友回復:
也許只是做?
function validateMenu() {
return p.currentUser && p.currentUser.getValue('id') !== 7
}
我真的不明白你為什么要在這種情況下使用回呼或承諾。不涉及任何異步,只檢查兩個簡單的條件。
您可能想了解更多關于回呼和承諾的資訊。
uj5u.com熱心網友回復:
它是
let showMenu = (!p.currentUser || p.currentUser.getValue('id') === 7) ? false : true;
如果你想使用承諾,你可以
function validateMenu() {
return new Promises((resolve, reject) => {
if (!p.currentUser || p.currentUser.getValue('id') === 7) {
resolve(false)
} else {
resolve(true)
}
});
}
uj5u.com熱心網友回復:
在功能上,像這樣
function validateMenu() {
return !(!p.currentUser || p.currentUser.getValue('id') === 7)
}
在變數中,如下所示:
let showMenu = !(!p.currentUser || p.currentUser.getValue('id') === 7)
宣告變數時不需要寫return。
uj5u.com熱心網友回復:
為什么不將用戶傳遞給這樣的函式
const validateMenu = (user) => (!user || user.getValue('id') === 7) ? false : true;
然后你可以打電話validateMenu(p.currentUser)
uj5u.com熱心網友回復:
您不需要if...else陳述句或條件(三元)運算子,您可以只使用箭頭函式運算式和邏輯運算子:
const Menu = () => !!currentUser && currentUser.getValue('id') !== 7;
uj5u.com熱心網友回復:
您可以使用可選鏈接 (?.)運算子來執行此操作,如下所示:
function isValueSeven(val) {
return !!(val?.getValue() === 7);
}
console.log(isValueSeven({ getValue: () => 7 }));
console.log(isValueSeven({ getValue: () => 8 }));
console.log(isValueSeven(null));
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/491241.html
標籤:javascript 功能 if 语句
下一篇:DoubleIfelse條件
