我想通过内部数组中的第一个元素从数组数组中找到唯一元素。
例如
a = [[1,2],[2,3],[1,5]
我想要类似的东西
[[1,2],[2,3]]
最佳答案
uniq
方法需要一个 block :
uniq_a = a.uniq(&:first)
或者如果您想就地进行:
a.uniq!(&:first)
例如:
>> a = [[1,2],[2,3],[1,5]]
=> [[1, 2], [2, 3], [1, 5]]
>> a.uniq(&:first)
=> [[1, 2], [2, 3]]
>> a
=> [[1, 2], [2, 3], [1, 5]]
或者
>> a = [[1,2],[2,3],[1,5]]
=> [[1, 2], [2, 3], [1, 5]]
>> a.uniq!(&:first)
=> [[1, 2], [2, 3]]
>> a
=> [[1, 2], [2, 3]]
如果您在 1.8.7 版本中遇到 uniq
不占用 block 的情况,那么您可以这样做:
a.group_by(&:first).values.map(&:first)
例如:
>> a = [[1,2],[2,3],[1,5]]
=> [[1, 2], [2, 3], [1, 5]]
>> a.group_by(&:first).values.map(&:first)
=> [[1, 2], [2, 3]]
感谢您的额外督促 Jin .
关于ruby - 数组数组中的唯一元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7657848/