質問編集履歴

5

試したことについて追記

2018/01/11 15:18

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -96,6 +96,10 @@
96
96
 
97
97
  ###試したこと
98
98
 
99
+ ・変数のスコープの問題かと思い一番外側にcombatant_oを用意し、foreach中にcombatantから値渡しをしたがループが終わるとcombatant_oにも値が記録されなかった
100
+
101
+
102
+
99
103
  配列の構造について
100
104
 
101
105
  ![イメージ説明](0f5bdb099bbce0183c661f4cf9fbc660.jpeg)

4

わかったことについて追記

2018/01/11 15:18

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,14 +1,14 @@
1
1
  ###前提・実現したいこと
2
2
 
3
- SQLに記録されているダメージログを取得し、ネーム別に合計値を算出しようとしましたが連装配列combatantにデータが登録されず困っています。コンソールの出力にはSQLからの取得は成功してダメージ一覧が取れているようですか原因がわかりません。
3
+ tableがクリックされた時にその行に設定されている日付のSQLに記録されているダメージログを取得し、ネーム別に合計値を算出しようとしましたが~~連装配列combatantにデータが登録されず~~
4
4
 
5
-
5
+ 申し訳ありませんforeachループ中にはcombatantに値は正常に記録されているようでした。ですがforeachを抜けると変数combatantの値が消えているようです。なぜ中身が消えるのか教えていただきたいです。
6
6
 
7
7
  ###該当のソースコード```JavaScript```
8
8
 
9
9
  ```
10
10
 
11
- var combatant = {};
11
+ var combatant_o = {};
12
12
 
13
13
  var pie_data = [];
14
14
 
@@ -16,15 +16,15 @@
16
16
 
17
17
  var datetime = $(this).closest('tr').children('td:eq(0)').text().replace(/\r?\n/g, "").trim();
18
18
 
19
- combatant = {};
20
-
21
- pie_data = [];
22
-
23
- console.log("||" + datetime + "||");
19
+ //console.log("||" + datetime + "||");
24
20
 
25
21
  $.getJSON('db.php', { "datetime": datetime },
26
22
 
27
23
  function (j_data) {
24
+
25
+ var combatant = {};
26
+
27
+ //console.table(j_data);
28
28
 
29
29
  //console.table(j_data[0]);
30
30
 
@@ -32,27 +32,41 @@
32
32
 
33
33
  $.each(j_data, function (i, item) {
34
34
 
35
+ $.each(j_data[i], function (j, iteml) {
36
+
35
- for (key in j_data[i]) {
37
+ var player_data = j_data[i][j];
38
+
39
+ //console.table(player_data);
36
40
 
37
41
  //console.log(j_data[i][key]["char_name"]+":"+j_data[i][key]["atk_dmg"]);
38
42
 
39
43
  //console.table(j_data[key]);
40
44
 
41
- if (j_data[i][key]["char_name"] in combatant) {
45
+ if (combatant[player_data["char_name"]]) {
42
46
 
43
- //console.log(j_data[i][key]["char_name"] + ":" + j_data[i][key]["atk_dmg"]);
47
+ combatant[player_data["char_name"]] = (combatant[player_data["char_name"]] + player_data["atk_dmg"]);
44
48
 
45
- combatant[j_data[i][key]["char_name"]] += j_data[i][key]["atk_dmg"];
49
+ //console.log(player_data["char_name"] += ":" + player_data["atk_dmg"]);
46
50
 
47
51
  } else {
48
52
 
53
+ // console.table(player_data);
54
+
55
+ //console.log(player_data["char_name"] + ":" + player_data["atk_dmg"]);
56
+
49
- combatant[j_data[i][key]["char_name"]] = j_data[i][key]["atk_dmg"];
57
+ combatant[player_data["char_name"]] = player_data["atk_dmg"];
50
58
 
51
59
 
52
60
 
53
61
  }
54
62
 
63
+ console.table(combatant);
64
+
65
+ combatant_o = combatant;
66
+
67
+
68
+
55
- }
69
+ })
56
70
 
57
71
  }
58
72
 
@@ -60,17 +74,17 @@
60
74
 
61
75
  }
62
76
 
63
- );
77
+ )
64
78
 
65
- console.table(combatant);
79
+ console.table(combatant_o);
66
80
 
67
- Object.keys(combatant).forEach(function (key) {
81
+ Object.keys(combatant_o).forEach(function (key) {
68
82
 
69
- console.log(key + ":" + combatant[key]);
83
+ console.log(key + ":" + combatant_o[key]);
70
84
 
71
- pie_data.push([key, combatant[key]]);
85
+ pie_data.push([key, combatant_o[key]]);
72
86
 
73
- });
87
+ })
74
88
 
75
89
 
76
90
 

3

jdataの中身について追記

2018/01/11 15:14

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -82,6 +82,8 @@
82
82
 
83
83
  ###試したこと
84
84
 
85
+ 配列の構造について
86
+
85
87
  ![イメージ説明](0f5bdb099bbce0183c661f4cf9fbc660.jpeg)
86
88
 
87
89
  j_data

2

jdataの中身について追記

2018/01/11 14:15

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -82,4 +82,14 @@
82
82
 
83
83
  ###試したこと
84
84
 
85
- 課題に対してアプロチしたことを記載してください
85
+ ![イメジ説明](0f5bdb099bbce0183c661f4cf9fbc660.jpeg)
86
+
87
+ j_data
88
+
89
+ ![イメージ説明](9d90863994b03061dffe07670949b24b.jpeg)
90
+
91
+ jdata[0]
92
+
93
+ ![イメージ説明](68313b031e61507a0e4a62da842eff6d.jpeg)
94
+
95
+ jdata[0][0]

1

コードのレイアウト変更

2018/01/11 14:14

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,9 @@
4
4
 
5
5
 
6
6
 
7
- ###該当のソースコード
7
+ ###該当のソースコード```JavaScript```
8
+
9
+ ```
8
10
 
9
11
  var combatant = {};
10
12
 
@@ -76,6 +78,8 @@
76
78
 
77
79
  });
78
80
 
81
+ ```
82
+
79
83
  ###試したこと
80
84
 
81
85
  課題に対してアプローチしたことを記載してください