1024-6ren">
gpt4 book ai didi

ruby-on-rails - 更新包含对象的 ruby​​ 数组

转载 作者:数据小太阳 更新时间:2023-10-29 08:17:38 25 4
gpt4 key购买 nike

如果我在 ruby​​ 中有一个对象数组,我该如何遍历该数组并更新对象?

例子:test_arr 具有以下值:(由 find_by_sql 获取)

test_arr = [
{"id"=>1024, "value"=>"9999"},
{"id"=>1025, "value"=>"9999"}
]
test_arr.map{|r| r.value="1111"}

返回 ["1111", "1111"]

我需要这样的东西:(更新后)

[{"id"=>1024, "value"=>"1111"}>,
{"id"=>1025, "value"=>"1111"}>]

如有任何帮助,我们将不胜感激。

最佳答案

您必须使用each,因为map 正在返回一个改变的数组。 each 正在迭代数组。

test_arr.each{|r| r.value="1111"}

test_arr.map{|r| r.value="1111"}

你返回一个改变的数组,内容是 block 的结果(在这个例子中是“1111”)。使用 map! 数组被修改。

您还可以使用:

test_arr.map{|r| 
r.value="1111" # modify r
r # return r - you are replacing r with r
}

但正如已经提到的:each 会更好。

关于ruby-on-rails - 更新包含对象的 ruby​​ 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12440014/

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