我依稀记得一个看起来像这样的JavaScript语法:
foo = bar ? {
condition1 :
condition2 :
...
} [item1, item2, ...]
我记得这会将数组中的一个值分配给 foo ,具体取决于块内部的代码(或类似的东西)。
有人可以帮我解决这个问题吗?或者我是否完全想象了这一点并且不知何故认为它是真的?
谢谢!
答案 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);

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