回答編集履歴

3

途中breakはforEachだとできなかったことに今さら気づいたのでfor...ofにした。

2020/06/22 14:32

投稿

raccy
raccy

スコア21739

test CHANGED
@@ -1,4 +1,4 @@
1
- まず、天気の名前が一致していたら、その画像やテキストを挿入するという所ですが、名前、テキスト、画像をまとめたObjectの配列を作って、forEachやfor ofで回すという手があります。質問のコードより前の所ですが、次のような感じにかけます。
1
+ まず、天気の名前が一致していたら、その画像やテキストを挿入するという所ですが、名前、テキスト、画像をまとめたObjectの配列(Array)を作って、`for...of`や`forEach`で回すという手があります。質問のコードより前の所ですが、次のような感じにかけます。
2
2
 
3
3
 
4
4
 
@@ -26,7 +26,7 @@
26
26
 
27
27
  ]
28
28
 
29
- weathers.forEach((weather) => {
29
+ for (const weather of weathers) {
30
30
 
31
31
  if (weatherName == weather.name) {
32
32
 
@@ -34,17 +34,17 @@
34
34
 
35
35
  patternImgTarget.innerHTML = `<img src="asset/img/${weather.img}" alt="${weather.text}">`;
36
36
 
37
- return;
37
+ break;
38
38
 
39
39
  }
40
40
 
41
- });
41
+ }
42
42
 
43
43
  ```
44
44
 
45
45
 
46
46
 
47
- このweathersはトップレベルで書いておけば、その後の似たような挿入部分も同じような処理で書けるようになります。
47
+ この`weathers`はトップレベルで書いておけば、その後の似たような挿入部分も同じような処理で書けるようになります。
48
48
 
49
49
 
50
50
 
@@ -58,17 +58,17 @@
58
58
 
59
59
  const targetData = data.list[num].weather[0].main;
60
60
 
61
- weathers.forEach((weather) => {
61
+ for (const weather of weathers) {
62
62
 
63
63
  if (targetData == weather.name) {
64
64
 
65
65
  document.getElementById(`${target}WEather_${time}`).innerHTML = `<img src="asset/img/${weather.img}" alt="${weather.text}">`;
66
66
 
67
- return;
67
+ break;
68
68
 
69
69
  }
70
70
 
71
- });
71
+ }
72
72
 
73
73
  const targetTemp = Math.round(data.list[num].main.temp);
74
74
 
@@ -80,7 +80,7 @@
80
80
 
81
81
 
82
82
 
83
- 渡すときも、まとめてforEachで流し込みましょう。
83
+ 渡すときも、配列にまとめて`forEach`で流し込みましょう。
84
84
 
85
85
 
86
86
 

2

breakじゃないreturnだよ

2020/06/22 14:32

投稿

raccy
raccy

スコア21739

test CHANGED
@@ -1,4 +1,4 @@
1
- まず、天気の名前が一致していたら、その画像やテキストを挿入するという所ですが、名前、テキスト、画像をまとめたObjectの配列を作って、forEachで回すという手があります。質問のコードより前の所ですが、次のような感じにかけます。
1
+ まず、天気の名前が一致していたら、その画像やテキストを挿入するという所ですが、名前、テキスト、画像をまとめたObjectの配列を作って、forEachやfor ofで回すという手があります。質問のコードより前の所ですが、次のような感じにかけます。
2
2
 
3
3
 
4
4
 
@@ -34,7 +34,7 @@
34
34
 
35
35
  patternImgTarget.innerHTML = `<img src="asset/img/${weather.img}" alt="${weather.text}">`;
36
36
 
37
- break;
37
+ return;
38
38
 
39
39
  }
40
40
 
@@ -64,7 +64,7 @@
64
64
 
65
65
  document.getElementById(`${target}WEather_${time}`).innerHTML = `<img src="asset/img/${weather.img}" alt="${weather.text}">`;
66
66
 
67
- break;
67
+ return;
68
68
 
69
69
  }
70
70
 

1

ちょっと間違ってた・・

2020/06/22 14:28

投稿

raccy
raccy

スコア21739

test CHANGED
@@ -90,13 +90,13 @@
90
90
 
91
91
  for (let i = 0; i < 5; i++) {
92
92
 
93
- targets.append({target: 'next', time: 6 + 3 * i, 7 + i});
93
+ targets.append({target: 'next', time: 6 + 3 * i, num: 7 + i});
94
94
 
95
95
  }
96
96
 
97
97
  for (let i = 0; i < 5; i++) {
98
98
 
99
- targets.append({target: 'afNext', time: 6 + 3 * i, 15 + i});
99
+ targets.append({target: 'afNext', time: 6 + 3 * i, num: 15 + i});
100
100
 
101
101
  }
102
102