我如何在Ruby中执行此操作
var pCodePrice = {
'GR1': 3.11,
'SR1': 5,
'CF1': 11.23
};
var basket = ['GR1', 'SR1', 'GR1', 'GR1', 'CF1'];
var total = [];
for (i = 0, x = basket.length; i < x; i++) {
for (var prop in pCodePrice) {
if (basket[i] == prop) {
total.push(pCodePrice[prop])
}
}
}
&#13;
这循环遍历数组并检查项是否与内部循环中的散列的键匹配,如果是,则将值推送到新数组中。
我无法在Ruby中获取它,
由于
答案 0 :(得分:4)
使用地图在ruby中非常简单。
pCodePrice = { 'GR1' => 3.11, 'SR1' => 5, 'CF1' => 11.23 }
=> {"GR1"=>3.11, "SR1"=>5, "CF1"=>11.23}
basket = ['GR1','SR1','GR1','GR1','CF1']
=> ["GR1", "SR1", "GR1", "GR1", "CF1"]
total = basket.map { |code| pCodePrice[code] }
=> [3.11, 5, 3.11, 3.11, 11.23]