是否存在JavaScript语法?

时间:2017-08-12 17:23:49

标签: javascript

我依稀记得一个看起来像这样的JavaScript语法:

foo = bar ? {
    condition1 :
    condition2 :
    ...
} [item1, item2, ...]

我记得这会将数组中的一个值分配给 foo ,具体取决于块内部的代码(或类似的东西)。

有人可以帮我解决这个问题吗?或者我是否完全想象了这一点并且不知何故认为它是真的?

谢谢!

3 个答案:

答案 0 :(得分:0)

你可能在谈论这种语法

var foo = [item1, item2, item3...][index]; //general syntax
var foo = ["a", "b", "c"][0]; //a
var foo = ["a", "b", "c"][1]; //b
var foo = ["a", "b", "c"][2]; //c

答案 1 :(得分:0)

是的,它被称为三元运算符,并且就像这样工作。

condition ? iftrue : iffalse

例如,这个:

fee = isMember ? '2.50' : '5.00';
alert('Your fee is $' + fee);

等于:

if(isMember) {
    fee = '2.50';
} else {
    fee = '5.00';
}
alert('Your fee is $' + fee);

(编辑)也许你可以使用这样的东西:

foo = ['item0', 'item1', 'item2', 'item3'][
    condition0 && 0 ||
    condition1 && 1 ||
    condition2 && 2 ||
    condition3 && 3]

答案 2 :(得分:0)

不,这当然不存在。你可以这样做:

foo = function (condition, array) {
  if (condition === 'a') {
    return array[0];
  }
  if (condition === 'b') {
    return array[1];
  }
}(bar, [item1, item2, ...]);

工作示例:



var foo = function (condition, array) {
  if (condition === 'a') {
    return array[0];
  }
  if (condition === 'b') {
    return array[1];
  }
}('b', ['some', 'array', 'containing', 'words']);

console.log(foo);




那会做你想要的,但看起来过于复杂。