質問編集履歴

1

コードの表示

2018/12/21 04:25

投稿

nukonuko_tk
nukonuko_tk

スコア17

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ruby 2.4.1p111 (2017-03-22 revision 58053) [x64-mingw32]
2
2
 
3
- windowsでrubyを使っています。
3
+ windows7サービスパック1でrubyを使っています。
4
4
 
5
5
 
6
6
 
@@ -45,3 +45,81 @@
45
45
 
46
46
 
47
47
  Rubyにバグがあるとしか思えないのですが、何か心あたりがある方はご指摘いただけると助かります。
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+ ```
56
+
57
+ result =[]
58
+
59
+ delegate_data.each do |d|
60
+
61
+ next if d == nil
62
+
63
+ id = d[1]
64
+
65
+ flag = false
66
+
67
+
68
+
69
+ ref_data.each do |ref|
70
+
71
+ if id == ref[4]
72
+
73
+ ref[1] = d[0]
74
+
75
+ flag = true
76
+
77
+ #### p ref #### no.1
78
+
79
+ result << ref
80
+
81
+ #### p result #### no.2
82
+
83
+ break
84
+
85
+ end
86
+
87
+ end
88
+
89
+ delegate_error << if flag == false
90
+
91
+
92
+
93
+ end
94
+
95
+
96
+
97
+ ```
98
+
99
+ 質問の本文は例としてorder_dataを用いましたがそれは無視していただいて、
100
+
101
+ 実際に書いたコードは上記です。
102
+
103
+
104
+
105
+ delegate_dataのデータの並びを
106
+
107
+ ref_dataと比較し、同じデータ(order_id)があれば一部を置き換えてデータを作成すると言った具合です。
108
+
109
+
110
+
111
+ ちなみに、エラーを検証した時にコメントアウトした行を見ると
112
+
113
+ no.1
114
+
115
+ ここで表示したものは思惑通りになっています
116
+
117
+
118
+
119
+ no.2
120
+
121
+ ここで表示したものは重複がなければ問題なし。
122
+
123
+ 重複したデータがあると、重複したデータを持つ一番最後のデータに、
124
+
125
+ 重複したデータを持つ全てのものが同じ値になってしまいます。