我有一个对象数组,想通过属性“位置”构建一个唯一的数组,比如
boxes.to_a.uniq! {|p| p[:position] }
但是如果第二个属性“不匹配”等于或更高,我想在扔掉所有双打之前进行区分。例如我有:
{ position: 233, mismatch: 3},
{ position: 234, mismatch: 3},
{ position: 233, mismatch: 1}
最后我想保留一个不匹配较少的:
{ position: 234, mismatch: 3},
{ position: 233, mismatch: 1}
因为对象 1 和 3 中的位置相同,但最后一个对象中的不匹配较少。
编辑:boxes 是一个对象数组,我像这样构建它:
@boxes = []
...
@boxes << {
:position => i,
:mismatch => mm,
}
其中位置和错配是在 DNA 序列上计算的。错配表示到 9 个核苷酸基序的汉明距离(字符串,如 "TTGATGCTT" )