gpt4 book ai didi

ruby - 将键值对添加到哈希数组中的所有哈希

转载 作者:太空宇宙 更新时间:2023-11-03 17:04:59 25 4
gpt4 key购买 nike

我有一个哈希数组。

results = [{a:1, b:2},{a:3, b:4}]

我想向所有哈希添加一个元素“c”,所以我最终得到:

results = [{a:1, b:2, c:"newvalue"},{a:3, b:4, c:"newvalue"}]

我正在尝试一种比循环遍历数组并一个接一个地执行此操作更有效的方法。

应该澄清一下。通过“不迭代”我只是意味着不写

results.each do |a|
a[:c] = "newvalue"
end

也许这个问题有点愚蠢,但只是觉得应该有类似于 ActiveRecord 风格的东西

results.update_all(c:"new_value")

这比遍历更有效/更快...可能是数组没有区别....

之间的区别
array.map{|a| [a,2]}

array.product([2])

最佳答案

试试这个。

results.each {|h| h[:c]="newvalue" unless h.include? :c}

如果不存在,它将添加 :c 值。

如果你想为所有元素添加而不检查它。

results.each {|h| h[:c]="newvalue"}

如果您不进行迭代,您可以在请求值时请求执行获取方法。

results.fetch(:c, "newvalue")

并且如果您需要散列上的该值并且您不会迭代数组,则可以在使用(默认)创建散列时添加默认值

关于ruby - 将键值对添加到哈希数组中的所有哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32057932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com