回答編集履歴

2

誤字修正

2020/02/13 07:42

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36960

test CHANGED
@@ -74,9 +74,9 @@
74
74
 
75
75
  for (let i = 0; i <= 5; i++) {
76
76
 
77
- if (array[i] === undefined) array[i] = [];
77
+ if (array_[i] === undefined) array_[i] = [];
78
78
 
79
- array[i].push('add');
79
+ array_[i].push('add');
80
80
 
81
81
  }
82
82
 

1

質問クローズを受けて追記

2020/02/13 07:41

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36960

test CHANGED
@@ -17,3 +17,71 @@
17
17
  }
18
18
 
19
19
  ```
20
+
21
+
22
+
23
+ ###質問クローズを受けて追記
24
+
25
+
26
+
27
+ jun68yktさんなどが挙げたスプレッド演算子を使って代入する方法は、破壊的なので、元のコードと微妙に振る舞いが違います。
28
+
29
+ あまり変わったことをしていなければ問題ないとは思いますが、お気を付けください。
30
+
31
+
32
+
33
+ ```js
34
+
35
+ const array = [];
36
+
37
+
38
+
39
+ array[0] = ['0'];
40
+
41
+ array[1] = ['1'];
42
+
43
+ array[3] = ['3'];
44
+
45
+ const old = array[3];
46
+
47
+
48
+
49
+ for (let i = 0; i <= 5; i++) {
50
+
51
+ array[i] = [...(array[i] || []), 'add'];
52
+
53
+ }
54
+
55
+
56
+
57
+ console.table(old === array[3]); // false
58
+
59
+
60
+
61
+ const array_ = [];
62
+
63
+
64
+
65
+ array_[0] = ['0'];
66
+
67
+ array_[1] = ['1'];
68
+
69
+ array_[3] = ['3'];
70
+
71
+ const old_ = array_[3];
72
+
73
+
74
+
75
+ for (let i = 0; i <= 5; i++) {
76
+
77
+ if (array[i] === undefined) array[i] = [];
78
+
79
+ array[i].push('add');
80
+
81
+ }
82
+
83
+
84
+
85
+ console.table(old_ === array_[3]); // true
86
+
87
+ ```