Arrays 根据满足条件的内容和差异创建两个阵列
假设我有以下数组:Arrays 根据满足条件的内容和差异创建两个阵列,arrays,ruby,Arrays,Ruby,假设我有以下数组: a = [1,2,3] 我想将其拆分为两个数组,一个包含条件为true的项,另一个包含相同条件为false的项: b, c = a.split_in_two_arrays_or_something_like_that {|x| x == 3} #=> b = [3] #=> c = [1,2] 我用ruby怎么做?我不想重复类似以下内容的代码: b = a.reject {|x| x == 3} c = a.reject {|x| x != 3} 也不在数组
a = [1,2,3]
我想将其拆分为两个数组,一个包含条件为true的项,另一个包含相同条件为false的项:
b, c = a.split_in_two_arrays_or_something_like_that {|x| x == 3}
#=> b = [3]
#=> c = [1,2]
我用ruby怎么做?我不想重复类似以下内容的代码:
b = a.reject {|x| x == 3}
c = a.reject {|x| x != 3}
也不在数组上迭代两次
是否有某种方法返回的结果与修改后的数组不同?例如,delete\u if
将返回已删除的元素,但原始数组将保持不变,但不起作用。用于根据条件分离数组中的元素。我们在分区
的块中定义条件:
a = [1,2,3]
b, c = a.partition { |x| x == 3 } #=> [[3], [1, 2]]
b #=> [3]
c #=> [1, 2]
此方法创建具有两个子阵列的阵列
- 第一个子数组包含
的块返回true的值partition
- 第二个子数组包含
的块返回false的值partition
分区
的块中定义条件:
a = [1,2,3]
b, c = a.partition { |x| x == 3 } #=> [[3], [1, 2]]
b #=> [3]
c #=> [1, 2]
此方法创建具有两个子阵列的阵列
- 第一个子数组包含
的块返回true的值partition
- 第二个子数组包含
的块返回false的值partition