回答編集履歴
4
改訂
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).
|
8
|
+
const fruits_name = $(e).data('fruits_name'); // jQueryの dataAPI で参照可
|
9
|
-
const frits_taste = $(e).
|
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(
|
31
|
+
console.log( oj );
|
29
32
|
// => 求めるオブジェクト
|
30
33
|
|
31
|
-
console.log( JSON.stringify(
|
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
訂正
answer
CHANGED
@@ -37,7 +37,7 @@
|
|
37
37
|
|
38
38
|
> こういったときにはどうすべきでしょうか?
|
39
39
|
|
40
|
-
1. 回答のコードにも残していますが、
|
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
訂正
answer
CHANGED
File without changes
|
1
追記
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 = {}`` と初期化しているので、オブジェクトの操作です)。
|