Ruby中的嵌套循环,哈希和数组

Nested Loop in Ruby, Hash and Array

本文关键字:哈希 数组 嵌套循环 Ruby      更新时间:2023-09-26

如何在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])
    }
  }
}

循环遍历数组并检查项是否与内部循环中的哈希值的键值匹配,如果匹配,则将值压入新数组。

在Ruby中我无法得到它,

谢谢

在ruby中使用map非常简单。

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]