我依稀記得一個JavaScript語法,看起來像這樣:是否存在JavaScript語法?
foo = bar ? {
condition1 :
condition2 :
...
} [item1, item2, ...]
記得這將分配的值之一的陣列中FOO取決於代碼塊(或類似的東西)的內部。
有人可以幫我解決這個問題嗎?還是我完全想象這一點,並以某種方式相信它是真實的?
謝謝!
我依稀記得一個JavaScript語法,看起來像這樣:是否存在JavaScript語法?
foo = bar ? {
condition1 :
condition2 :
...
} [item1, item2, ...]
記得這將分配的值之一的陣列中FOO取決於代碼塊(或類似的東西)的內部。
有人可以幫我解決這個問題嗎?還是我完全想象這一點,並以某種方式相信它是真實的?
謝謝!
你可能會談論這句法
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
這是有條件的,謝謝 – user8455627
是的,這就是所謂的三元運算符,其作用如下。
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]
在功能上這是,但我正在尋找一種超級濃縮的方式寫這一切 – user8455627
我想說一行很濃縮...你的意思是你想使用一個函數而不是'isMember',並且基於該函數返回什麼? – Poootaatoooo
一旦你開始嵌套條件,這可能會變得很難閱讀,我提到的語法列出了條件一行,然後之後,具有相同數量的價值的數組,其中之一取決於哪個條件返回true。 – user8455627
不,那當然不存在。你可以做這樣的事情:
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);
這會做你想要的,但似乎過於複雜。
那裏肯定有一個數組,並且沒有** if ... else如果**或**函數**或**返回**,我也不記得打開和關閉這麼多curly括號內,每個案件一行。我測試過它,它工作,我很興奮,因爲這會縮短我的很多代碼。但現在我忘了如何寫它,嘆息... – user8455627
[有條件/三元運算符](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) –
什麼是「代碼」?語句,對象字面量的一部分,還有其他的東西? – PeterMader
它看起來像一個畸形的三元表達式。 'var a = b? true:false;':如果'b'真正將'a'設置爲true,否則將其設置爲'false'。 – Andy