↓これが原因でしょう。
- if(str[i] === 'b' && num[j] === '30') {
+ if(str[i] == 'b' && num[j] == '30') {
ここに解決したい内容を記載してください。
break文が機能していないようで、原因がわかりません。
for文が最後まで実行されてしまいます。
有識者の方、教えていただけますと幸いです。
JavaScript
<script>
const str = ['a','b','c'];
const num = [10,20,30];
alphabet:
for(let i = 0; i < str.length; i++) {
numeric:
for(let j = 0; j < num.length; j++) {
console.log(`アルファベット:[${str[i]}]`,`数値:[${num[j]}]`);
if(str[i] === 'b' && num[j] === '30') {
break alphabet;
}
}
}
// > アルファベット: [a] 数値: [10]
// > アルファベット: [a] 数値: [20]
// > アルファベット: [a] 数値: [30]
// > アルファベット: [b] 数値: [10]
// > アルファベット: [b] 数値: [20]
// > アルファベット: [b] 数値: [30]
</script>
↓これが原因でしょう。
- if(str[i] === 'b' && num[j] === '30') {
+ if(str[i] == 'b' && num[j] == '30') {
@toshirodejapon
Questionerご確認ありがとうございます!無事、修正できました!
なぜ===ではだめなのか教えていただけますでしょうか?
解決したのであれば、本問をクローズしましょう。
if(str[i] === 'b' && num[j] === '30') {
num[j] === 30 としたら('30' という文字列ではなくて 30 という数値と比較したら)どうなりますか?
== ではなく === を使ったのはそれなりの理由があったのでは?
@toshirodejapon
Questionerありがとうございます!理解することができました!
解決したならクローズしてください
質問とは全く関係ありませんが、ソースコードの種類を示すには、こうする方法がありますよ。
```js:javascriptのコード
var hoge = 1;
```
↓
var hoge = 1;
@toshirodejapon
Questionerありがとうございます!次回から使用させていただきます。
MORE ACCURATELY...
<script>
const str = ['a','b','c'];
const num = [10,20,30];
alphabet:
for(let i = 0; i < str.length; i++) {
numeric:
for(let j = 0; j < num.length; j++) {
console.log(`アルファベット:[${str[i]}]`,`数値:[${num[j]}]`);
if(str[i] === 'b' && num[j] === 30) {
break alphabet;
}
}
}
</script>
Well...
'30' is a "String" of value 30.
30 is a "Number" of value 30.
=== means value should be EQUAL and the type should be EQUAL too!
But == is not so accurate and sometimes get to be ambiguous of type judging.
So I suggest you to use === instead of == when you are writing code.