質問編集履歴

4

修正

2019/11/07 12:18

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,30 +1,18 @@
1
1
  二重forの処理に20秒近くかかってしまいます。
2
-
3
- 初めは30秒だったので中の処理をオブジェクト配列をやめるなどして20秒に短縮したのですが、まだ遅いです。
4
2
 
5
3
  大量のforを行いたい時、高速化するにはどのようなことに気をつければいいのでしょうか?
6
4
 
7
5
 
8
6
 
9
- 環境は、Vue.js Webブラウザ(Chorome)です。
7
+ 環境はWebブラウザ(Chorome)です。
10
8
 
11
9
 
12
10
 
13
- **原因特定しました**
11
+ **追記**
14
12
 
15
13
  皆様のアドバイスにより、20秒超だったのが、100msになりました。
16
14
 
17
15
  ありがとうございます。
18
-
19
- 一番問題になっていたのは、forというより、
20
-
21
- for内で参照している配列に問題がありました。
22
-
23
- Vue.jsを使用していたのですが、Vueのメンバとして作った、
24
-
25
- this.dataListを一度、forする前に別の変数に入れ直すと、高速になりました。
26
-
27
- しかしなぜ、このようなことが起こったのか、これについてはもう少し自分で考えてみることにします。
28
16
 
29
17
 
30
18
 
@@ -46,13 +34,13 @@
46
34
 
47
35
  getData: function () {
48
36
 
49
- // let dataL = this.dataList;
37
+ // let dataL = this.dataList; 高速化のためこの行を追記した
50
38
 
51
39
  for(let i = 0, end = this.dataList.lenght; i < end; i++){
52
40
 
53
41
  for(let p = 0, endp = 10; p < endp; p++){
54
42
 
55
- // 文字列操作などの重い処理
43
+ // 処理
56
44
 
57
45
  }
58
46
 

3

変更

2019/11/07 12:18

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- JavaScriptでfor高速に処理するには
1
+ for高速に処理するには
test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- **解決しました**
13
+ **原因特定しました**
14
14
 
15
15
  皆様のアドバイスにより、20秒超だったのが、100msになりました。
16
16
 
@@ -24,7 +24,7 @@
24
24
 
25
25
  this.dataListを一度、forする前に別の変数に入れ直すと、高速になりました。
26
26
 
27
-
27
+ しかしなぜ、このようなことが起こったのか、これについてはもう少し自分で考えてみることにします。
28
28
 
29
29
 
30
30
 

2

変更

2019/11/06 10:55

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -6,9 +6,25 @@
6
6
 
7
7
 
8
8
 
9
- 環境は、Webブラウザ(Chorome)です。
9
+ 環境は、Vue.js Webブラウザ(Chorome)です。
10
10
 
11
+
12
+
13
+ **解決しました**
14
+
15
+ 皆様のアドバイスにより、20秒超だったのが、100msになりました。
16
+
17
+ ありがとうございます。
18
+
19
+ 一番問題になっていたのは、forというより、
20
+
11
- 中の処理を具体化しますので少お待ちください
21
+ for内で参照ている配列に問題がありまし
22
+
23
+ Vue.jsを使用していたのですが、Vueのメンバとして作った、
24
+
25
+ this.dataListを一度、forする前に別の変数に入れ直すと、高速になりました。
26
+
27
+
12
28
 
13
29
 
14
30
 
@@ -16,14 +32,40 @@
16
32
 
17
33
 
18
34
 
19
- for(let i = 0, end = 3000; i < end; i++){
35
+ var app = new Vue({
20
36
 
21
- for(let k = 0, endk = 10; k < endk; k++){
37
+ el: '#app',
22
38
 
39
+ data: {
40
+
41
+ dataList: [] // 大量のデータ
42
+
43
+ },
44
+
45
+ computed: {
46
+
47
+ getData: function () {
48
+
49
+ // let dataL = this.dataList;
50
+
51
+ for(let i = 0, end = this.dataList.lenght; i < end; i++){
52
+
53
+ for(let p = 0, endp = 10; p < endp; p++){
54
+
23
- // 文字列操作などの重い処理
55
+ // 文字列操作などの重い処理
56
+
57
+ }
58
+
59
+ }
60
+
61
+ }
24
62
 
25
63
  }
26
64
 
65
+
66
+
27
- }
67
+ })
68
+
69
+
28
70
 
29
71
  ```

1

修正

2019/11/06 10:48

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -3,6 +3,12 @@
3
3
  初めは30秒だったので中の処理をオブジェクト配列をやめるなどして20秒に短縮したのですが、まだ遅いです。
4
4
 
5
5
  大量のforを行いたい時、高速化するにはどのようなことに気をつければいいのでしょうか?
6
+
7
+
8
+
9
+ 環境は、Webブラウザ(Chorome)です。
10
+
11
+ 中の処理を具体化しますので少しお待ちください。
6
12
 
7
13
 
8
14