次の配列割り当てがあります。
advances = if advance == 0 then [advance] else [advance, (0 - advance)]
これを行うためのもっとコーヒースクリプトの方法があるのだろうか?
次の配列割り当てがあります。
advances = if advance == 0 then [advance] else [advance, (0 - advance)]
これを行うためのもっとコーヒースクリプトの方法があるのだろうか?
どうですか:
advances = [advance]
advances.push (0 - advance) if advance != 0
これはもう少し読みやすいと思います。しかし、それは好みの問題だと思います。また、coffee-script の優れた if-at-the-end 機能も使用しています。これにより、この「条件付き配列の成長」などのステートメントが読みやすくなります (少なくとも私にとっては)。
PS:ステートメントを避けるために to== 0
も変更しました。コードを読むときに混乱するだけです。!= 0
unless
PPS: ためだけにすべてを 1 行にまとめないでください (コーヒー スクリプトがそれを得意としても)。最も読みやすい (そしてパフォーマンスの良い) コードを常に考えてください。
リスト内包表記について考えているかもしれませんが、ここでそれらをどのように利用するか想像できません。underscore.js (またはコレクション ユーティリティを提供する他のライブラリ) を使用すると、より良い結果が得られると思います。
advances = _.uniq([advance, (0 - advance)])
あなた自身の提案はまったく問題ないと思います。シンプルで明確、そして純粋に機能的です。
句読点を最小限に抑えることがcoffeescriptの方法の一部であると思われる場合は、括弧を削除できます
advances = if advance == 0 then [advance] else [advance, 0 - advance]