【问题标题】:How to pick only certain elements from an array in Ruby?如何从Ruby中的数组中只选择某些元素?
【发布时间】:2021-10-21 00:00:23
【问题描述】:

我有一个这样的数组:

CATEGORIES = [
  [
    "CategA:", [
      "a",
      "b",
      ...
    ]
  ], [
    "CategB:", [
      "..."
    ]
  ], ...
]

我以一种形式显示这个数组(像这样):

    = f.input :field_name, label: false, include_blank: false, collection: CATEGORIES, as: :grouped_select, group_method: :last, input_html: { }

如何在此输入中仅显示某些类别(例如 CategACategB)?我试过这样的事情:

    = f.input :field_name, label: false, include_blank: false, collection: CATEGORIES.select { |i| i == 'CategA:' || i == 'CategB:' }, as: :grouped_select, group_method: :last, input_html: { }

但没有显示任何内容。

提前谢谢你。

【问题讨论】:

    标签: arrays ruby


    【解决方案1】:

    您正在将数组与字符串进行比较,这是行不通的。您只想将字符串与每个嵌套数组的第一个元素进行比较:

    CATEGORIES.select { |i| i.first == 'CategA:' || i.first == 'CategB:' }
    

    【讨论】:

    • CATEGORIES.select { |i| i.first.in? %w[CategA: CategB:] }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 2018-06-15
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    相关资源
    最近更新 更多