在三元或 if 陳述句中,我經常希望該值等于正在測驗的值,例如
//b is a integer or '-'
//a should be an integer
const a = b === '-' ? -1 : b
我用于 a 的陳述句是
const a = expr.match(/.*?\((.*)[a-z].*/)[1]
所以很高興知道是否有單行方式讓它作業,所以我不會重復一個可能會改變的復雜運算式。
uj5u.com熱心網友回復:
只需先分配變數。
let b = b = expr.match(/.*?\((.*)[a-z].*/)[1];
const a = b == '-' ? -1 : b;
如果你真的想要一個單行,你可以b在運算式中賦值。
const a = (b = expr.match(/.*?\((.*)[a-z].*/)[1]) == '-' ? -1 : b;
但是你應該b早點宣告。您每次都可以重用相同的臨時變數,因此您只需宣告一次并在所有單行中使用它。
如果您在多個地方需要此模式,請定義一個函式。
function if_dash(expr) {
return expr == '-' ? -1 : expr;
}
const a = if_dash(expr.match(/.*?\((.*)[a-z].*/)[1]);
uj5u.com熱心網友回復:
如果您只想獲得一次價值,請使用下面提到的腳本。
var a = (b = expr.match(/.*?\((.*)[a-z].*/)[1]) == '-' ? -1 : b;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/421744.html
標籤:
