回答編集履歴

1

追記

2018/05/24 02:17

投稿

yambejp
yambejp

スコア114843

test CHANGED
@@ -19,3 +19,37 @@
19
19
  console.log(newtime);
20
20
 
21
21
  ```
22
+
23
+
24
+
25
+ # 追記
26
+
27
+ JSON.parse(JSON.stringify(・・・))について質問がありましたので以下参考にして下さい
28
+
29
+
30
+
31
+ ```javascript
32
+
33
+ var a=[[100,110,120],[200,210,220],[300,310,320]];
34
+
35
+ var b=a.filter(function(x){return x[1]==210;})[0];
36
+
37
+ console.log(b);
38
+
39
+ b[0]=999;
40
+
41
+ console.log(b);
42
+
43
+ console.log(a);
44
+
45
+ ```
46
+
47
+ javascriptにおいて変数へのオブジェクトの代入は常に参照渡しをします。
48
+
49
+ 上記、aの配列から2番目(0から数えて1番め)の要素が210の配列を1つbに受けたとして
50
+
51
+ bの1番め(0から数えて0番目)の要素を変更すると、元のaの配列にも影響があるわけです
52
+
53
+ これを避ける常套手段としてオブジェクトの属性からはずすために
54
+
55
+ 一度文字列化をしてオブジェクトにもどすJSON.parse、JSON.stringifyを利用します