これはStackoverflowに関する私の最初の質問なので、私をバラバラにしないでください!質問が長すぎたり、基本的すぎたりする場合はお詫びしますが、わかりやすく、明確に、そして十分に入力すると、関係者全員が私の問題を理解しやすくなると思います。質問のフォーマットを改善できる場合は、後の質問のために知らせてください。
状況を説明するために、Googlegraphsにレコードの配列(Times)を表示するRubyonRailsアプリを作成しています。これらのTimesレコードには2つの重要な属性があります。それらの「date」属性と「hours_worked」属性。簡単に言えば、グラフの特定の日付のすべての「hours_worked」を表示する必要があります。したがって、グラフに表示される配列の最初の要素は、最初の日付のすべての「 hours_worked 」値を保持し、2番目の要素は、2番目の日付のすべての「hours_worked」値を保持します。
明らかに、すべてのレコードの「hours_worked」値を配列に入れることはできません。これは、 「date」属性が完全に無視されるためです。2つの要素が同じ「日付」にある「hours_worked」の配列がある場合、グラフはこれを認識せず、「日付」をまったく認識せずにすべてを表示します。
擬似コードを使用した私の「ソリューション」:
ただし、すべての「Time」レコードを反復処理して、 「dates」が1つの配列にすでに存在するレコードに分割し、すべてのコピーを別の配列に配置することはできます。
@array1 = []#Original values
@array2 = []
@task.time_and_attendances.each do |f|
if f.date is not in @array2
@array2 << f
else
@array1 << f
次に、2つの配列を比較し、@ array2に@array1に含まれる日付が含まれている場合は、単に「hours_worked」を足し合わせます。@ array1には、この追加が必要なすべてのレコードが含まれるため、複数のレコードがある日付には、「hours_worked」属性が組み合わされます。これにより、各値がすべての単一の日付の「hours_worked」の合計量である配列が得られます。
それは私の問題に対する理想的な解決策ですが、それを実装する方法について私は困惑しています。誰かアイデアはありますか?