teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

コードの表示

2018/12/21 04:25

投稿

nukonuko_tk
nukonuko_tk

スコア17

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
- windowsでrubyを使っています。
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
+ 重複したデータを持つ全てのものが同じ値になってしまいます。