js
1if(a==1||a==2||a==5||a==6||a==7||a==8||a==9||a==10||a==11){ 2}else{ 3}
上記のようなif文を短く書きたいですが
if(a==1,2,5,6,7・・・){
}else{
}
のような書き方があれば教えてください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答8件
0
JavaScript
1if(a==1||a==2||a==5||a==6||a==7||a==8||a==9||a==10||a==11){
短く書く事も大切ですが、拡張性を意識して書いてみました。
(2017/06/20 18:19追記)
Array#includes
が要件に最も近そうですね。
switch 文
JavaScript
1switch (a) { 2 case 1: 3 case 2: 4 case 5: 5 case 6: 6 case 7: 7 case 8: 8 case 9: 9 case 10: 10 case 11: 11 console.log('処理'); 12}
for 文
JavaScript
1for (var i = 0, array = [1,2,5,6,7,8,9,10,11], len = array.length; i < len; ++i) { 2 if (a === array[i]) { 3 console.log('処理'); 4 } 5}
Array#some
JavaScript
1if ([1,2,5,6,7,8,9,10,11].some(v => a === v)) { 2 console.log('処理'); 3}
Array#includes
NaN
値も照合可能な新しいメソッドです。IE11 対策に Polyfill を適用しましょう。
JavaScript
1if ([1,2,5,6,7,8,9,10,11].includes(a)) { 2 console.log('処理'); 3}
Re: rainbowsix さん
投稿2017/06/20 09:12
編集2017/06/20 09:22総合スコア18164
0
javascript
1MASK = "_11001111111" 2 3a = 2; 4if (MASK[a] == '1') { 5 console.log("true"); 6} else { 7 console.log("false"); 8}
実行結果
$ node a.js true
投稿2017/06/20 22:33
編集2017/06/21 15:15総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/21 02:51
2017/06/21 15:23
2017/06/22 02:19
2017/06/22 15:05
0
単に if 文を短かくしたいんだったら関数にするとか。
外してる気もしますが(汗
JavaScript
1function is_target(a) { 2 if(a==1) return true; 3 if(a==2) return true; 4 if(a==5) return true; 5 if(a==6) return true; 6 if(a==7) return true; 7 if(a==8) return true; 8 if(a==9) return true; 9 if(a==10) return true; 10 if(a==11) return true; 11 return false; 12} 13 14if (is_target(a)) { 15 // 該当するときの処理 16}else{ 17 // 該当しないときの処理 18}
投稿2017/06/20 10:34
総合スコア7458
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/28 01:13
0
ベストアンサー
jQueryが走ってるならinArrayがあります
javascript
1if($.inArray(a,[1,2,5,6,7,8,9,10,11]) >= 0){ 2}
なければindexOf
javascript
1if([1,2,5,6,7,8,9,10,11].indexOf(a) >= 0){ 2}
投稿2017/06/20 09:24
編集2017/06/20 09:26総合スコア7804
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ややみじかく。(11111110011b = 0x7F3)
JavaScript
1if((1<<a-1)&0x7F3){ 2}else{ 3}
↓の方が処理がわかりやすいかも。
JavaScript
1if((0x7F3>>a-1)&1){ 2}else{ 3}
投稿2017/06/20 10:32
編集2017/06/22 04:39総合スコア372
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
以下の回答は間違いですので参照しないで下さい。
javascript
1if(a in [1,2,5,6,7,8,9,10,11]){ 2}else{ 3}
で行けるかと思います。
投稿2017/06/20 09:06
編集2017/06/20 09:20総合スコア5030
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。