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

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

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

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

Q&A

解決済

3回答

1026閲覧

JavaScript エラーは無いが、for文内部のif文が出力されない

yamayama-ya-ma

総合スコア14

JavaScript

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

0グッド

0クリップ

投稿2019/07/04 15:20

#下記コードで、for文内部のconsole.log二種を表示させたいです

var source = "0,1,2,"; // 最後のカンマが余計なのは仕様です。必ず0~6の数字の文字列になります。 var sp = source.split(","); var count = sp.length; console.log(sp); console.log(count); for(var i=0;i<sp.length - 1;i++) { Number(sp[i]); console.log(sp[i]); if (sp[i] === 0) { console.log(sp[i]); //ここ表示させたい console.log("ZEEEROOOO"); //ここ表示させたい } else if (sp[i] === 1) { console.log(sp[i]); //ここ表示させたい console.log("OONEEEEEEEEE"); //ここ表示させたい } else if (sp[i] === 2) { console.log(sp[i]); //ここ表示させたい console.log("TWOOOOOOOO"); //ここ表示させたい } }

###出力
[ '0', '1', '2', '' ]
4

これのみで、「ここ表示させたい」の部分は表示されません
エラーメッセージ等はありません

#環境
paiza.io

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

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

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

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

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

guest

回答3

0

spの中身はすべて文字列なので、この条件だと一致しません。

js

1if (sp[i] === 0) {}

数値型に変換するか、比較の条件を文字列にすると良いかと思います。

js

1if (sp[i] === '0') {} 2// もしくは 3if (Number(sp[i]) === 0) {}

投稿2019/07/04 15:28

hiro0218

総合スコア68

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

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

yamayama-ya-ma

2019/07/04 23:59

if文条件式内でNumber()とする事もできるんですね。無事動作しました!ありがとうございます。
guest

0

Number(sp[i]);ってやってる箇所、おそらくこれでキャストができてるつもりなんでしょうけど、var x = Number(sp[i]);とでもやって戻り値を取らないと意味ないんじゃ。(で、xをif文に使う)

投稿2019/07/04 15:26

gentaro

総合スコア8949

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

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

yamayama-ya-ma

2019/07/04 23:57

ありがとうございます。質問文中のコードのif文の=== を ==にしたら解決できたのですが、ご提示頂いた方法ではi === のままで行けました!今後の参考になります!
guest

0

ベストアンサー

文字列と数値を===で比較しているので、絶対に真にはなりません。
==で比較して文字と数値の自動変換機能を使うか、どちらも文字列にして比較、または、どちらも数値にして比較します。

投稿2019/07/04 15:26

otn

総合スコア84505

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

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

yamayama-ya-ma

2019/07/04 23:54

ありがとうございます。==にしたら無事表示されました!
otn

2019/07/05 00:08

== による比較は、例えば、[]==0 が真だったりするので、かなり注意が必要です。 トリッキーなところでは、[] == ![] も真なんですよね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問