【发布时间】:2016-12-22 01:01:57
【问题描述】:
我正在尝试将字符串与对象数组进行比较。这样当字符串值与数组中的该对象匹配时,它将保留它。
示例如下:
sample = [#<Model::ID:0x007fcb83ace8a0
type_id: 6,
parent_name: "Old Man",
child_name: "Junior">,
#<Model::ID:0x007fcb83abd0a0
type_id: 6,
parent_name: "Mary",
child_name: "Michelle">,
#<Model::ID:0x007fcb83abce70
type_id: 6,
parent_name: "Ole Bob",
child_name: "Bobby">]
name = "Michelle"
所以我尝试了以下方法:
sample.keep_if { |keep_ele| [keep_ele]["child_name"] == name }
这将返回以下错误: TypeError:没有将String隐式转换为Integer
但是当我在 IRB 并且我输出 sample[1]["child_name"] 它等于 "Michelle"
然后我尝试了:
sample.keep_if { |keep_ele| keep_ele["child_name"] == name }
它只是返回一个空数组:[]
知道如何运行 keep_if 吗?
【问题讨论】: