-1

像这样的数组:

a = ["<root>", 
"<products>", 
"<product>", 
"<id>", "1", "</id>",
"<name>", "name1", "</name>", 
"</product>",
"<product>", 
"<id>", "2", "</id>",
"<name>", "name2", "</name>", 
"</product>",
"</products>", 
"</root>"]

和这样的哈希:

b = {
"products" => {
  "product" => [
     {"id" => "1", "name" => "name1"},
     {"id" => "2", "name" => "name2"}
   ]
  }
}

怎么把这个hashc取出来:< a/ bp>

c = {
"products" => {
  "product" => [
     {"id" => "1", "name" => "name1", "id_index" => 4, "name_index" => 7},
     {"id" => "2", "name" => "name2", "id_index" => 12, "name_index" => 15}
   ]
  }
}

4、7、12、15是数组中“1”、“name1”、“2”、“name2”的索引a

4

1 回答 1

0

我想它看起来像:

c = {'products' => {'product' => b['products']['product']
  .map{|o| o.merge({'id_index' => a.index(o['id']), 'name_index' => a.index("name#{o['id']}")})}}}
于 2012-06-25T08:59:09.703 回答