我有两个数组
a = [1, 2, 3, 4, 5]
b = [2, 4, 6]
我想要合并这两个数组,然后移除与另一个数组相同的值。结果应为:
c = [1, 3, 5, 6]
我尝试过将两个数组做减法,结果是[1, 3, 5]。我还想获取第二个数组中与第一个数组不重复的值。
我已经尝试过将两个数组相减,结果为[1, 3, 5]。同时我也想从第二个数组中获取那些在第一个数组中没有重复的值。
我有两个数组
a = [1, 2, 3, 4, 5]
b = [2, 4, 6]
我想要合并这两个数组,然后移除与另一个数组相同的值。结果应为:
c = [1, 3, 5, 6]
我尝试过将两个数组做减法,结果是[1, 3, 5]。我还想获取第二个数组中与第一个数组不重复的值。
我已经尝试过将两个数组相减,结果为[1, 3, 5]。同时我也想从第二个数组中获取那些在第一个数组中没有重复的值。
使用 Array#uniq 方法。
a = [1, 3, 5, 6]
b = [2, 3, 4, 5]
c = (a + b).uniq
=> [1, 3, 5, 6, 2, 4]
[1, 3, 5, 6],而这不是这个代码的结果,那么这怎么正确呢? - riley[1,2,2,3] 转换为 [1,2,3] 不等同于 [1,3]。第一个是删除重复项,第二个是删除重复值。 - Peter R|a = [1, 2, 3, 4, 5]
b = [2, 4, 6]
合并时不重复数值。a | b
# => [1, 2, 3, 4, 5, 6]
获取仅重复的值
a & b
# => [2, 4]
合并并移除重复值,也就是获取所有唯一值并减去所有重复值。
(a | b) - (a & b)
# => [1, 3, 5, 6]
[1,3,5,6] 而不是 [1,2,3,4,5,6]。 - Peter R你可以做以下几点!
# Merging
c = a + b
=> [1, 2, 3, 4, 5, 2, 4, 6]
# Removing the value of other array
# (a & b) is getting the common element from these two arrays
c - (a & b)
=> [1, 3, 5, 6]
尽管我是独立想出这个想法的,但 Dmitri 的评论也与我的相同。
让我们有两个数组
p = [1, 2, 5, 4, 8, 9]
q = [5, 6, 4, 8, 5, 3]
(p+q).uniq or (p.concat(q)).uniq
=> [1, 2, 5, 4, 8, 9, 6, 3]
同时 p|q 也可以胜任!选择适合你的那个。
根据上述要求,
(p | q) - (p & q) 可以完成任务。
[1,3,5,6]而不是[1,2,3,4,5,6]。 - Peter R(p | q) - (p & q) 或 (p+q) - (p & q) 都可以使用! - V K Singh试试看 Set.new([1,2,3]+[1,4,5])?
它会返回 [1,2,3,4,5]
[1,2,3,4,5] 不是正确的结果,[2,3,4,5] 才是。 - Peter R
(a-b)+(b-a)的翻译是:(a-b)+(b-a)。 - Cary Swoveland