2017-08-12 3 views
0

私は漠然と、このようになり、JavaScriptの構文を覚えている:私は、これはブロック(または似たような)の内部コードに応じて、のfooに、配列内の値のいずれかを割り当てます覚えJavaScriptシンタックスは存在しますか?

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

を。

誰かがこれを手伝ってくれますか?それとも、私はこれを完全に想像して、何とかそれが真実だと信じましたか?

ありがとうございます!

+0

[条件付き/三項演算子](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) –

+1

'code'とは何ですか?ステートメント、オブジェクトリテラルの一部、その他何か? – PeterMader

+0

不正な3進表現のようです。 'var a = b? true:false; ':' b'が真実であれば 'a'を真に設定し、そうでなければ' false'に設定します。 – Andy

答えて

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 
+0

これは条件付きでやっていたとにかくありがたいです – user8455627

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


(EDIT)たぶん、あなたはこのようなものを使用することができます。

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

これは機能的にはこれですが、私はそれをすべて書き込むための凝縮された方法を探しています – user8455627

+0

私は1つのラインがかなり凝縮していると思います...あなたは関数'isMember'の代わりに、関数が返すものを基にしていますか? – Poootaatoooo

+0

これは、条件のネストを開始するとかなり読みにくくなります。私が参照する構文では、条件を1行リストし、その後に同じ数のvaleusを持つ配列を返します。 – user8455627

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

あなたが欲しいものだろうが、それは過度に複雑そうです。

+0

確かにそこに配列がありました。** if ... else **または** function **または** return **まったく、私は開いたり閉じたりすることを覚えていません大括弧では、1行につき1行でした。私はそれをテストし、それがうまくいきました。私のコードが大幅に短縮されたので、とても興奮していました。しかし今、私はそれを書こうと忘れてしまった、一息... – user8455627

関連する問題