根据特定条件将值分配给其他变量

时间:2019-04-28 15:57:51

标签: javascript

如何根据特定条件将值分配给其他变量?

例如,如果现在变量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`

3 个答案:

答案 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);