数组元素的匹配困难

SG *_* 86 0 ruby ruby-on-rails

我有这个数组:

@array = [["1003", "4"], ["963", "3"], ["1006", "1"], ["1064", "1"], ["1095", "1"], ["963", "http://www.google.com/1"], ["1003", "http://www.google.com/2"]] 
Run Code Online (Sandbox Code Playgroud)

我需要这个结果:

@array = [["1003", "http://www.google.com/2"], ["963", "http://www.google.com/1"]]
Run Code Online (Sandbox Code Playgroud)
  1. 将每个[0]相互匹配,如果适合将"http:link"设置为[1].
  2. 删除所有没有匹配的委托.

这怎么可能?

Gaz*_*ler 8

Hash[@array].reject{|k,v| v == "1"}.to_a
Run Code Online (Sandbox Code Playgroud)

这是做什么的:

初始化数组:

@array => [["1003", "4"], ["963", "3"], ["1006", "1"], ["1064", "1"], ["1095", "1"], ["963", "http://www.google.com/1"], ["1003", "http://www.google.com/2"]] 
Run Code Online (Sandbox Code Playgroud)

转换为哈希:

hash = Hash[@array] => {"1003"=>"http://www.google.com/2", "963"=>"http://www.google.com/1", "1006"=>"1", "1064"=>"1", "1095"=>"1"} 
Run Code Online (Sandbox Code Playgroud)

删除值=="1"的位置:

hash = hash.reject!{|k,v| v == "1"} => {"1003"=>"http://www.google.com/2", "963"=>"http://www.google.com/1"} 
Run Code Online (Sandbox Code Playgroud)

转换回数组:

hash.to_a => [["1003", "http://www.google.com/2"], ["963", "http://www.google.com/1"]] 
Run Code Online (Sandbox Code Playgroud)

reject是delete_if的别名