我想从二维数组中删除重复项,但我需要单独保留子数组。
数组:
a = [1,2,3,4]
b = [2,3,4,5]
c = [3,4,5,6]
d = [4,5,6,7]
newarray = [[1,2,3,4], [2,3,4,5], [3,4,5,6], [4,5,6,7]]
想要得到如下结果:
newarraynoduplicates = [[1,2,3,4], [5], [6], [7]]
我已经尝试了以下的东西
[a|b|c|d] => [[1, 2, 3, 4, 5, 6, 7]]
[a|b|c|d] => [1, 2, 3, 4, 5, 6, 7]
也试过
newarray.uniq! => nil!
最佳答案
最通用的方法是:
[[1,2,3,4], [2,3,4,5], [3,4,5,6], [4,5,6,7]].
each_with_object([]) { |a, acc| acc << a - acc.flatten }
#⇒ [[1, 2, 3, 4], [5], [6], [7]]
或
[[1,2,3,4], [2,3,4,5], [3,4,5,6], [4,5,6,7]].
reduce([]) { |acc, a| acc << a - acc.flatten }
#⇒ [[1, 2, 3, 4], [5], [6], [7]]
关于ruby - 二维数组 - 如何删除重复值但保持子数组分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56429704/