在这段代码中:
arr = [ { id: 1, body: 'foo'}, { id: 2, body: 'bar' }, { id: 3, body: 'foobar' }]
arr.map { |h| h[:id] } # => [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
有没有更简洁的方法从这样的哈希数组中获取值?
Underscore.js有问题,我想知道是否有Ruby等价物.
Ken*_*Y-N 24
如果你不介意猴子修补,你可以去自己:
arr = [{ id: 1, body: 'foo'}, { id: 2, body: 'bar' }, { id: 3, body: 'foobar' }]
class Array
def pluck(key)
map { |h| h[key] }
end
end
arr.pluck(:id)
=> [1, 2, 3]
arr.pluck(:body)
=> ["foo", "bar", "foobar"]
Run Code Online (Sandbox Code Playgroud)
此外,看起来有人已经为Enumerables和其他人推广了这个更通用的解决方案.
kha*_*maa 11
现在导轨支持Array.pluck
开箱即用。它已经被这个PR实现了
它实现为:
def pluck(key)
map { |element| element[key] }
end
Run Code Online (Sandbox Code Playgroud)
所以没有必要再定义它了:)
归档时间: |
|
查看次数: |
9874 次 |
最近记录: |