2016-05-10 12 views
0

私はこのことを理解したいと思います。誰かが(if/else/elseif)文章で書くことができますか?Javascriptの3進演算子の構文がわからない

lists[list === 'todo' ? 'done' : 'todo'].appendChild(task); 

おかげ

あなたはそれを書き換えることができ
+0

奇妙なロジック - 何かがそうでない場合は、「TODO」 –

+0

私は三項演算子の重複はOPの混乱の少なくとも半分だと思うに追加し、「完了」し、それを追加し、「TODO」のステータスを持っている場合。主に、三角形とブラケット記法の組み合わせについてです。 – dfsq

答えて

3

として:

if (list === 'todo') { 
    lists.done.appendChild(task); 
} 
else { 
    lists.todo.appendChild(task); 
} 

ここの事はあなたが変数と式は、プロパティに解決することができますbracket notation、経由オブジェクトの任意のプロパティにアクセスすることができるということです名。したがって、lists.donelists['done']に相当しますが、後で式を使用してキー名を計算できます。これはあなたが元の例で持っているものです。

+0

これはうまくいきます、ありがとう –

1
if (list === 'todo') { 
    lists['done'].appendChild(task); 
else { 
    lists['todo'].appendChild(task); 
}