teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

追加修正

2020/10/01 14:50

投稿

kuma_kuma_
kuma_kuma_

スコア2506

answer CHANGED
@@ -14,6 +14,8 @@
14
14
 
15
15
  追記
16
16
  質問者様がしたい事(ほしい結果)はこれで合っていますか?
17
+ (複数回実行想定の処理が無かったので一応追加)
18
+
17
19
  ```javascript
18
20
  console.log( hoge() );
19
21
  function hoge(){
@@ -22,13 +24,17 @@
22
24
  const fruits_name = $(e).attr('data-fruits_name');
23
25
  const frits_taste = $(e).attr('data-frits_taste');
24
26
  // const obj = { [frits_taste] : $(e).prop('checked') };
25
- let obj = {}; // 子要素の設定
26
- obj[frits_taste] = $(e).prop('checked'); // 子要素に値を設定
27
- if (!(fruits_name in resuts)) { // 親要素の存在チェック
27
+ if (!(fruits_name in resuts)) { // 親要素の存在チェック
28
- resuts[fruits_name] = []; // 親要素の初期化
28
+ resuts[fruits_name] = []; // 親要素の初期化
29
29
  }
30
+ if (!(frits_taste in resuts[fruits_name])) { // 子要素の存在チェック
31
+ let obj = {}; // 子要素の設定
32
+ obj[frits_taste] = $(e).prop('checked'); // 子要素に値を設定
30
- resuts[fruits_name].push(obj); // 親要素に子要素を設定
33
+ resuts[fruits_name].push(obj); // 親要素に子要素を追加
34
+ }else{
35
+ resuts[fruits_name][frits_taste] = $(e).prop('checked') // 子要素に値を追加
36
+ }
31
- console.log(resuts["apple"]["xxx"]); // 確認用にコンソールに出力
37
+ console.log(resuts["apple"]["xxx"]); // 確認用にコンソールに出力
32
38
  });
33
39
  return resuts;
34
40
  }

3

修正漏れ

2020/10/01 14:50

投稿

kuma_kuma_
kuma_kuma_

スコア2506

answer CHANGED
@@ -28,6 +28,7 @@
28
28
  resuts[fruits_name] = []; // 親要素の初期化
29
29
  }
30
30
  resuts[fruits_name].push(obj); // 親要素に子要素を設定
31
+ console.log(resuts["apple"]["xxx"]); // 確認用にコンソールに出力
31
32
  });
32
33
  return resuts;
33
34
  }

2

コメント修正

2020/10/01 14:35

投稿

kuma_kuma_
kuma_kuma_

スコア2506

answer CHANGED
@@ -22,9 +22,12 @@
22
22
  const fruits_name = $(e).attr('data-fruits_name');
23
23
  const frits_taste = $(e).attr('data-frits_taste');
24
24
  // const obj = { [frits_taste] : $(e).prop('checked') };
25
- let obj = {};
25
+ let obj = {}; // 子要素の設定
26
- obj[frits_taste] = $(e).prop('checked');
26
+ obj[frits_taste] = $(e).prop('checked'); // 子要素に値を設定
27
+ if (!(fruits_name in resuts)) { // 親要素の存在チェック
28
+ resuts[fruits_name] = []; // 親要素の初期化
29
+ }
27
- resuts[fruits_name].push(obj);
30
+ resuts[fruits_name].push(obj); // 親要素に子要素を設定
28
31
  });
29
32
  return resuts;
30
33
  }

1

追記の追記

2020/10/01 14:27

投稿

kuma_kuma_
kuma_kuma_

スコア2506

answer CHANGED
@@ -10,4 +10,22 @@
10
10
  console.log(resuts["apple"]["xxx"]);
11
11
  console.log(resuts["apple"]["yyy"]);
12
12
  console.log(resuts["banana"]["zzz"]);
13
+ ```
14
+
15
+ 追記
16
+ 質問者様がしたい事(ほしい結果)はこれで合っていますか?
17
+ ```javascript
18
+ console.log( hoge() );
19
+ function hoge(){
20
+ let resuts = {};
21
+ $('input').each(function(i,e){
22
+ const fruits_name = $(e).attr('data-fruits_name');
23
+ const frits_taste = $(e).attr('data-frits_taste');
24
+ // const obj = { [frits_taste] : $(e).prop('checked') };
25
+ let obj = {};
26
+ obj[frits_taste] = $(e).prop('checked');
27
+ resuts[fruits_name].push(obj);
28
+ });
29
+ return resuts;
30
+ }
13
31
  ```