回答編集履歴
1
変数名の誤字を修正しました
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
コメントで頂いたアドバイスをもとに解決できました。ありがとうございます。
|
2
2
|
### 問題のコード
|
3
|
-
実際のコードには`fruit
|
3
|
+
実際のコードには`fruitList`だけでなく、新しくフルーツを投下する用の配列を準備し、実際にフルーツを透過する時に使用していました。
|
4
4
|
```TypeScript
|
5
5
|
// 定義
|
6
6
|
const dropData = fruitList.slice(0, 5)
|
@@ -8,7 +8,7 @@
|
|
8
8
|
// この関数でランダムに呼び出していた
|
9
9
|
const dropFruit = (fruitList: FruitData[]) => fruitList[Math.trunc(Math.random() * fruitList.length)]
|
10
10
|
```
|
11
|
-
この`dropData`は`fruit
|
11
|
+
この`dropData`は`fruitList`の参照を`slice()`していたので、`fruitList`に不必要な書き換えを引き起こしていました。
|
12
12
|
### 解決方法
|
13
13
|
```TypeScript
|
14
14
|
// 問題のコード
|
@@ -17,4 +17,4 @@
|
|
17
17
|
// 解決後
|
18
18
|
const dropData = structuredClone(fruitList).slice(0, 5)
|
19
19
|
```
|
20
|
-
`structuredClone`でディープコピーして定義することで`fruit
|
20
|
+
`structuredClone`でディープコピーして定義することで`fruitList`に影響が及ばなくなりました。
|