質問編集履歴

1

試したことやバージョンなど少し追記しました

2019/10/19 05:06

投稿

gochiso
gochiso

スコア4

test CHANGED
File without changes
test CHANGED
@@ -10,11 +10,11 @@
10
10
 
11
11
 
12
12
 
13
- そしてこの保存において、何度目のクリックであっても配列を保存したいのですが、、、
13
+ そしてこの保存において、何度目のクリックであっても配列を保存したいのですが、次の問題が発生します。
14
14
 
15
15
 
16
16
 
17
- ### 発生している問題・エラーメッセージ
17
+ ### 発生している問題
18
18
 
19
19
  jQuery.cookieで配列を保存すると、1回目に勝手にオブジェクトになり、2回目以降に配列になるという問題に遭遇しました。
20
20
 
@@ -64,7 +64,7 @@
64
64
 
65
65
  ```
66
66
 
67
- 下記6行目のコンソール表示は配列のかぎかっこ(これ→[])があるのに、行目で勝手にオブジェクトに変換されてしまいます。この変換は1回目のクリックだけで、2回目以降はきちんと配列が保存され、オブジェクトになることはありません。
67
+ 下記6行目のコンソール表示は配列のかぎかっこ(これ→[])があるのに、7行目で勝手にオブジェクトに変換されてしまいます。この変換は1回目のクリックだけで、2回目以降はきちんと配列が保存され、オブジェクトになることはありません。
68
68
 
69
69
  ```
70
70
 
@@ -85,3 +85,29 @@
85
85
  });
86
86
 
87
87
  ```
88
+
89
+
90
+
91
+ ###試したこと
92
+
93
+ まず、HisToryAryを次のように変えても変化なしでした。
94
+
95
+ ```
96
+
97
+ //let HistoryAry = $.cookie( 'HistoryAry' ) ? JSON.parse( $.cookie( 'HistoryAry' ) ) : [];
98
+
99
+ let HistoryAry = JSON.parse( $.cookie( 'HistoryAry' ) ? $.cookie( 'HistoryAry' ) : '[]' );
100
+
101
+ ```
102
+
103
+ また、HisToryAryの初期化の際に次のように空のオブジェクトをいれてみましたところ、1回目のクリックでも配列が保存されました。(もちろん不要な空のオブジェクトも保存されることになるのでこれはいけません)
104
+
105
+ ```
106
+
107
+ let HistoryAry = $.cookie( 'HistoryAry' ) ? JSON.parse( $.cookie( 'HistoryAry' ) ) : [{}];
108
+
109
+ ```
110
+
111
+ ###バージョン
112
+
113
+ 上で使用中のjquery.cookieは1.4.1です。