有可能在 JavaScript 中做这样的事情吗?
max = (max < b) ? b;
换句话说,仅当条件为真时才赋值。如果条件为假,则什么也不做(不赋值)。这可能吗?
有可能在 JavaScript 中做这样的事情吗?
max = (max < b) ? b;
换句话说,仅当条件为真时才赋值。如果条件为假,则什么也不做(不赋值)。这可能吗?
然后不要使用三元运算符,它需要第三个参数。如果您不希望它更改max
,则需要重新分配( )。max
max = (max < b) ? b : max
if 语句更清晰:
if (max < b) max = b;
如果你需要它是一个表达式,你可以(ab)使用AND的短路评估:
(max < b) && (max = b)
顺便说一句,如果你想避免重复变量名(或表达式?),你可以使用最大函数:
max = Math.max(max, b);
带有三元运算符的表达式必须同时具有两个值,即真假两种情况。
但是你可以
max = (max < b) ? b : max;
在这种情况下,如果条件为假,则值max
不会改变。
如果条件为假,您可以设置max
为自身。
max = (max < b) ? b : max;
或者您可以尝试使用&&
运算符:
(max < b) && (max = b);
或者为了让您的代码简单,只需使用if
.
if(max < v) max = b;
我认为三元更合适试试这个
(max < b) ? max = b : '';
没有一个特定的运算符不是三元运算符,但您可以像这样使用它:
max = (max < b) ? b : max;
我认为更好的方法可能是
max = Math.max(max, b)
你可以这样做:
(max < b) ? max = b : ''
你可以试试:
(max < b) && (max = b);
看这个例子:
let max = 10;
let b = 15;
(max < b) && (max = b)// this will be true
console.log("max=", max);
let maxx = 10
let bb = 5;
(maxx < bb) && (maxx = bb)// this will be false
console.log("maxx=", maxx);
三元运算符用于我们至少有两个可能的结果。
let no = 10;
let max = 20;
max = no > max ? no : max
如果您只想使用 if 而不是 else,那么我建议您使用 if not 三元运算符。
let no = 10;
let max = 20;
if (no > max){
max = no
}
如果你想使用三元运算符,但又不想使用 else 部分,那么你可以使用这个,但这并不是对每个问题都有用
let no = 10;
let max = 20;
no > max ? max = no : 0
在这里,我们仅在条件为真时才为 max 变量赋值,否则,我们什么也不做
没有ES6的例子,我们可以这样使用:
let list = [{id: "abc", name: "test1"}, {id: "xyz", name: "test2"}]
let selectedData = {};
list.some((exp) => {
return (
exp.id == "xyz" &&
((selectedData = exp), true)
);
})
console.log(selectedData);
在反对票后添加描述:
只需添加描述来解释我的解决方案。如果你有一个对象数组,并且你想要只满足一个条件,那么我们可以使用some
. 它将设置selectedData
当id == "xyz"
. 如问题中所述,仅当条件为真时才会赋值,否则selectedData
将为空。
您可以使用逻辑与赋值 (&&=)来代替三元运算符。
基本示例
let output = false;
output &&= true;
console.log(output)
无法重新分配,因为output
已定义为false。
const b = 10;
const max = 1;
let sum = max < b;
sum &&= 'new value';
console.log(sum);
返回一个字符串,因为该变量sum
已被定义为true。