1

これが私がアプローチしようとしている次の問題です。私はそれをどのように行っているかを述べるつもりであり、より単純なアプローチを探しています(そしてよりクリーンな :P)。

次のような入力が与えられた場合:

最初の入力

1 soccer ball costs 30 
1 piano costs 500
1 guitars costs 200

2 番目の入力

1 luxury bottle of whiskey costs 10.20
1 package of luxury caviar costs 53

各行の最終価格と各入力の最終価格を計算したい。各行の最終価格を計算するために、次のことを考慮します。

  • 処理されたアイテムがスポーツに関連する場合、2 を追加します (したがって、最初の行は 32 になります)。音楽アイテムの場合は、4 を追加します (つまり、2 行目は 504 になります)。
  • 処理される項目が食品関連の場合、5 を追加します (したがって、2 番目の入力の両方の行が 5 ずつ増加します)。
  • 加工品が高級品なら10足したいです。

私は一つのことに問題があります:

  • 特定の行にあるアイテムの種類を特定してマッピングします。

正規表現を使用して、アイテムであるはずの行の部分を見つけることができます:

soccer ball
piano
guitars
bottle of whisky
package of caviar

非常に一般的な質問かもしれませんが、各項目がどのような種類の優れているかを見つけるにはどうすればよいでしょうか。

今、私は次のような構造を持っています:

{"soccer" => "sports", "piano" => "music", "guitars" => "music", "whisky" => "food", "caviar" => "food"}

次に、ハッシュの任意のキーを特定の行の項目と一致させようとします。より良い方法、API、またはこれをより簡単にする何かを考えられますか?

4

1 に答える 1

0

逆階層があります。配列内の各キーはカテゴリである必要があり、値はそのカテゴリに分類されるすべてのアイテムの配列である必要があります。

{"sports"=> ["soccer"], "music" => ["guitars", "piano"], "food" => ["caviar","whisky"]}
于 2012-10-27T12:51:18.867 に答える