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

回答編集履歴

4

改訂

2020/10/01 14:42

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
@@ -5,8 +5,8 @@
5
5
  function hoge(){
6
6
  let rslt = {};
7
7
  $('input').each(function(i,e){
8
- const fruits_name = $(e).attr('data-fruits_name');
8
+ const fruits_name = $(e).data('fruits_name'); // jQueryの dataAPI で参照可
9
- const frits_taste = $(e).attr('data-frits_taste');
9
+ const frits_taste = $(e).data('frits_taste');
10
10
  const obj = { [frits_taste] : $(e).prop('checked') };
11
11
 
12
12
  // jquery を用いて HTML から取得した値を確認
@@ -17,24 +17,27 @@
17
17
 
18
18
  //rslt[fruits_name].push(obj); // 配列を処理しようとしている
19
19
  if( !relt.hasOwnProperty(fruits_name) ) {
20
+ // プロパティが無いときは新規に付与
20
21
  rslt[fruits_name] = obj;
21
22
  }
22
23
  else {
24
+ // プロパティが有るときは、値のオブジェクトを合成
23
25
  Object.assign( rslt[fruits_name], obj)
24
26
  }
25
27
  });
26
28
  return rslt;
27
29
  }
30
+ let oj = hoge()
28
- console.log( hoge() );
31
+ console.log( oj );
29
32
  // => 求めるオブジェクト
30
33
 
31
- console.log( JSON.stringify(hoge()) );
34
+ console.log( JSON.stringify(oj) );
32
- // => JSON で 送受信
35
+ // => JSON で 送受信できる文字列に
33
36
  ```
37
+ * Google検索 [jquery data api](https://www.google.co.jp/search?q=jquery+data+api)
38
+ * MDN [Object#hasOwnProperty()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty)
39
+ * MDN [Object.assign()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
34
40
 
35
- * [hasOwnProperty()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty)
36
- * [Object.assign()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
37
-
38
41
  > こういったときにはどうすべきでしょうか?
39
42
 
40
43
  1. 回答のコードにも残していますが、[console.log()](https://developer.mozilla.org/ja/docs/Web/API/Console/log) を用いて値をしっかり把握すること

3

訂正

2020/10/01 14:42

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
@@ -37,7 +37,7 @@
37
37
 
38
38
  > こういったときにはどうすべきでしょうか?
39
39
 
40
- 1. 回答のコードにも残していますが、``console.log()`` を用いて値をしっかり把握すること
40
+ 1. 回答のコードにも残していますが、[console.log()](https://developer.mozilla.org/ja/docs/Web/API/Console/log) を用いて値をしっかり把握すること
41
41
  (確認数が多い場合、``log=[]``のような配列に入れて [console.table()](https://developer.mozilla.org/ja/docs/Web/API/console/table) も活用します)。
42
42
  2. 反復処理で操作したい対象は、配列なのか、オブジェクトなのかを失念しないこと
43
43
  (``rslt = {}`` と初期化しているので、オブジェクトの操作です)。

2

訂正

2020/10/01 14:30

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
File without changes

1

追記

2020/10/01 14:30

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
@@ -33,4 +33,11 @@
33
33
  ```
34
34
 
35
35
  * [hasOwnProperty()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty)
36
- * [Object.assign()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
36
+ * [Object.assign()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
37
+
38
+ > こういったときにはどうすべきでしょうか?
39
+
40
+ 1. 回答のコードにも残していますが、``console.log()`` を用いて値をしっかり把握すること
41
+ (確認数が多い場合、``log=[]``のような配列に入れて [console.table()](https://developer.mozilla.org/ja/docs/Web/API/console/table) も活用します)。
42
+ 2. 反復処理で操作したい対象は、配列なのか、オブジェクトなのかを失念しないこと
43
+ (``rslt = {}`` と初期化しているので、オブジェクトの操作です)。