【问题标题】:How to iterate two arrays for multiple conditions in rails?如何为rails中的多个条件迭代两个数组?
【发布时间】:2015-07-01 05:06:52
【问题描述】:

我有两个数组,a = ["value1", "value2", "value3"]b = ["value2", "value4"] 如果数组“b”中的元素已经存在于数组“a”中,那么我想更新它,如果数组“b”的元素不存在于数组中“ a" 然后我想创建,如果数组 "a" 的元素不存在于数组 "b" 中,那么我想删除它

我尝试过a - b, a & b, b - a,但我无法循环多个条件,如何迭代两个数组以进行创建/更新/删除

a - b => ["value1", "value3"] needs to be deleted and store it in new array "c"
a & b => ["value2"] needs to be updated and store it in new array "c"
b - a => ["value4"] needs to be created and store it in new array "c"

【问题讨论】:

  • 你需要澄清你在问什么。例如“如果数组“b”中的元素已经存在于数组“a”中,那么我想更新它“更新什么?甲还是乙?以下条件是对变异数据进行评估还是仅适用于初始值?
  • 我修改了问题,我需要形成新的数组

标签: ruby-on-rails arrays loops iteration


【解决方案1】:

试试b || a。它会完成你的任务。

【讨论】:

  • 谢谢,但它适用于更新/创建,但我想从数组“a”中删除数组“b”中不存在的元素
【解决方案2】:

您可以为此使用集合 -

a = ["value1", "value2", "value3"]
b = ["value2", "value4"]

seta = Set.new(a)
setb = Set.new(b)

( seta - (seta - setb) ).to_a

 => ["value2"]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-25
    • 2011-05-25
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 2019-10-06
    相关资源
    最近更新 更多