如何根据特定条件将值分配给其他变量?
例如,如果现在变量a
为true,那么我想将字符串“ Hello”分配给变量b
,而不是变量c
。
但是如果现在变量a
不正确,那么我希望可以将字符串“ Hello”分配给变量c
,而不是变量b
。
是否有一种方法可以根据Javascript中的特定条件将值分配给其他变量?
赞:
var a = true;
var b, c;
((a) ? b : c) = "Hello";
console.log(b); //This should output "Hello"
console.log(c); //This should output `undefined`
答案 0 :(得分:0)
尝试if ... else语句。
var a = true;
var b, c;
if (a) {
b = "Hello";
} else {
c = "Hello";
}
console.log(b); //This should output "Hello"
console.log(c); //This should output `undefined`
答案 1 :(得分:0)
否,您不能选择任务的目标作为表达式 1 。你应该写
if (a) {
b = "Hello";
} else {
c = "Hello";
}
如果您不想复制构造变量的"Hello"
表达式,请将其放在一个临时变量中。但是,实际上很少需要分配给不同的变量。考虑调用一个函数,该函数根据您的条件具有所需的结果:
function chooseOrder(x) {
return a ? [x, undefined] : [undefined, x];
}
;[b, c] = chooseOrder("Hello");
1:嗯,总是有一个例外。例如,我们可以使用setter属性,并动态选择分配了属性的对象:
(a
? {set value(v) { b = v; }}
: {set value(v) { c = v; }}
).value = "Hello";
但这确实应该被视为带有临时变量的把戏。
答案 2 :(得分:0)
您不能使用表达式选择分配目标。您要执行的操作需要if() ... else
。
var a = true;
var b, c;
if(a)
b = "Hello";
else
c = "Hello";
console.log(b);
console.log(c);