gpt4 book ai didi

ruby-on-rails - @users.each 做|用户| --- 有没有办法对多个对象执行此操作

转载 作者:数据小太阳 更新时间:2023-10-29 07:21:15 26 4
gpt4 key购买 nike

我目前在做:

@users.each do |user|

鉴于我有@users、@users1、@users2

有什么办法可以做到:

[@users, @users1, @users2].each do |user|

让每个循环遍历所有对象?

谢谢

最佳答案

您可以连接数组并迭代结果:

(@users + @users1 + @users2).each do |user| 
...
end

使用展平可能很诱人,但您应该谨慎使用。如果任何数组的任何元素本身就是数组,一个简单的无参数 flatten 调用不会按照您预期的方式运行:

users, users1, users2 = [1,2],  [ [3,4], [5,6] ], [ 7,8]
puts [users,users1,users2].flatten.inspect
# Will print [1, 2, 3, 4, 5, 6, 7, 8]
# Two small arrays are smashed!!!

然而,作为jleedev在其中一条评论中建议,Ruby 中的 flatten 函数可以接受一个整数参数,该参数定义数组将被粉碎到的最大级别,因此:

puts [users,users1,users2].flatten(1).inspect
# Will print [1, 2, [3, 4], [5, 6], 7, 8]
# Just as planned.

关于ruby-on-rails - @users.each 做|用户| --- 有没有办法对多个对象执行此操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5929828/

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