質問編集履歴
1
コードの表示
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
ruby 2.4.1p111 (2017-03-22 revision 58053) [x64-mingw32]
|
2
|
-
|
2
|
+
windows7サービスパック1でrubyを使っています。
|
3
3
|
|
4
4
|
order_data = [
|
5
5
|
[number,product_id,order_id,time,....],
|
@@ -21,4 +21,43 @@
|
|
21
21
|
検証のために、他の命令文を極力なくし、order_data[0][2] = modified_data
|
22
22
|
のみにしても同じです。
|
23
23
|
|
24
|
-
Rubyにバグがあるとしか思えないのですが、何か心あたりがある方はご指摘いただけると助かります。
|
24
|
+
Rubyにバグがあるとしか思えないのですが、何か心あたりがある方はご指摘いただけると助かります。
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
```
|
29
|
+
result =[]
|
30
|
+
delegate_data.each do |d|
|
31
|
+
next if d == nil
|
32
|
+
id = d[1]
|
33
|
+
flag = false
|
34
|
+
|
35
|
+
ref_data.each do |ref|
|
36
|
+
if id == ref[4]
|
37
|
+
ref[1] = d[0]
|
38
|
+
flag = true
|
39
|
+
#### p ref #### no.1
|
40
|
+
result << ref
|
41
|
+
#### p result #### no.2
|
42
|
+
break
|
43
|
+
end
|
44
|
+
end
|
45
|
+
delegate_error << if flag == false
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
```
|
50
|
+
質問の本文は例としてorder_dataを用いましたがそれは無視していただいて、
|
51
|
+
実際に書いたコードは上記です。
|
52
|
+
|
53
|
+
delegate_dataのデータの並びを
|
54
|
+
ref_dataと比較し、同じデータ(order_id)があれば一部を置き換えてデータを作成すると言った具合です。
|
55
|
+
|
56
|
+
ちなみに、エラーを検証した時にコメントアウトした行を見ると
|
57
|
+
no.1
|
58
|
+
ここで表示したものは思惑通りになっています
|
59
|
+
|
60
|
+
no.2
|
61
|
+
ここで表示したものは重複がなければ問題なし。
|
62
|
+
重複したデータがあると、重複したデータを持つ一番最後のデータに、
|
63
|
+
重複したデータを持つ全てのものが同じ値になってしまいます。
|