質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CoffeeScript

CoffeeScriptはプログラミング言語です。シンタックスシュガーの導入により、JavaScriptのコードに変換された後動作します。JavaScriptに比べ、可読性と簡潔性が向上しています。

Q&A

解決済

3回答

3948閲覧

coffeescriptで条件文が長くなる時

退会済みユーザー

退会済みユーザー

総合スコア0

CoffeeScript

CoffeeScriptはプログラミング言語です。シンタックスシュガーの導入により、JavaScriptのコードに変換された後動作します。JavaScriptに比べ、可読性と簡潔性が向上しています。

0グッド

0クリップ

投稿2016/03/03 01:46

条件判定が長くなりすぎるのでcoffeescriptを条件文複数行に分けたいのですが,
複数行で条件を書くことはできますか?

coffeescript

1 2if A is B or A is C or A is D 3 (処理) 45if A is B 6 or A is C 7 or A is D 8 (処理) 9 10などに

もしできないのであれば変数にboolean値にしてから代入してやる方法でやろう思っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

orなどの演算子を行末に置いた場合、次の行とつないで評価してくれるとのことです(StackOverflow)。

coffeescript

1if A is B or 2A is C or 3A is D 4 # 処理

投稿2016/03/03 01:59

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/03/03 02:05

ありがとうございます! たすかりました!
guest

0

題目とは異なりますが、
例題のようにisとorのみを重ねるケースでは下記のようにすると美しいです。
記述量もスッキリ減るのである程度は1行で書ききれるでしょう。

また、CoffeeScript→JavaScript変換時に得られるコードも同一です。

CoffeeScript

1if A in [B, C, D] 2 console.log true

JavaScript

1if (A === B || A === C || A === D) { 2 console.log(true); 3}

変数をかませると挙動はほぼ同一ですが異なるJavaScriptになります。

CoffeeScript

1hoge = [B, C, D] 2if A in hoge 3 console.log true

JavaScript

1var hoge, 2 indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; 3 4hoge = [B, C, D]; 5 6if (indexOf.call(hoge, A) >= 0) { 7 console.log(true); 8}

投稿2016/03/03 02:49

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/03/03 07:01

参考になりました! ありがとうございます!
guest

0

if A is B or A is C or A is D console.log "OK"

質問内容の切り方ですと、coffeeは、orの行がブロック開始と認識します。
orは二項をとることをcoffeeが知っているため、上のように切ると、coffeeは次の行がつながっていると判断できます。

投稿2016/03/03 02:05

liply

総合スコア150

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/03/03 02:06

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問