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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1259閲覧

javascript、関数

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/11/30 20:59

<script> function phoneNum(num){ ary = []; ary1 = []; ary2 = []; for(var i = 0,len = num.length;i < len;i++){ if(i < 3){ ary.push(num[i]) }else if(2 < i < 6){ ary1.push(num[i]) }else if(5 < i){ ary2.push(num[i]) } } ary = ary.join(''); ary1 = ary1.join(''); ary2 = ary2.join(''); return '('+ary+')' + ' ' + ary1 + '-' + ary2 } var numstr = [1,2,3,4,5,6,7,8,9,10] var result = phoneNum(numstr) console.log(result) </script> ```この関数を実行すると、(123) 45678910 - といったように、ハイフンが文字列の末尾に来てしまいます。どなたか原因を教えてください!

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

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

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

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

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

guest

回答1

0

ベストアンサー

以下みたいなこと出来ません。出来ないというか厳密に言うと全てtrueになるかと。

javascript

1if(2 < i < 6)... 2

iが0~2の場合は、先のif分に該当するので割愛
上記は i が 3 の場合
2 < 3 の結果 true
true と 6 を比較演算するので、 trueは1と解釈され
1 < 6 の結果 true になるので

ary1.push(num[i])

が実行される。

また、先のi<3が無かった場合で、iが1の場合
2 < 1 の結果 false
false と 6 を比較演算するので、 false は0と解釈され
0 < 6 の結果 true になるので、結局

ary1.push(num[i])

が実行される。

n以上(より)、m以下(未満)などをif文で表現したい場合は、複数のif文に
開始条件と終端条件を分けないとだめです。

投稿2017/11/30 23:09

kanimaru

総合スコア1013

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

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

退会済みユーザー

退会済みユーザー

2017/11/30 23:25

基本を忘れていました... ご解説ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問