1

这是我试图解决的以下问题。我将说明我是如何做到的,并且我正在寻找一种不太复杂(并且更简洁:P)的方法。

给定这样的输入:

第一次输入

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

第二输入

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

我想计算每行的最终价格和每个输入的最终价格。为了计算每条线的最终价格,我考虑到:

  • 如果处理的项目与运动有关,我想加 2(所以第一行是 32)。如果是音乐项目,我想加 4(所以第二行是 504)。
  • 如果处理的项目与食物相关,我想加 5(所以第二个输入的两行都会增加 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 回答