gpt4 book ai didi

ruby - 二维数组 - 如何删除重复值但保持子数组分开

转载 作者:数据小太阳 更新时间:2023-10-29 07:22:18 26 4
gpt4 key购买 nike

我想从二维数组中删除重复项,但我需要单独保留子数组。

数组:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com