簡體   English   中英

合並兩個紅寶石陣列

[英]amalgamate two ruby arrays

非常簡單,但是我需要為系統中的每個admin用戶加上1個其他用戶運行一些代碼。

我可以得到這樣的管理員用戶。

account.users.where(:hr => 1).map(&:id)

和這樣的個人用戶

user.manager_id

因此,我如何將它們放在一起以產生一個唯一的數組,因為在第二段代碼中可能會在第二段代碼中找到用戶。 下面的代碼似乎可以正常工作,但是我敢肯定有一種更優雅的方法

myarray = []
a.employees.where(:hr => 1).each do |user|
  myarray << user.id
end

myarray << user.line_manager_id
myarray.uniq

這似乎是錯誤的,因為我正在創建許多對象以獲取其ID?

您可以使用數組“聯合”方法Array#|

account.users.where(:hr => 1).map(&:id) | [user.manager_id]
myarray = a.employees.where(:hr => 1).pluck(:id)
myarray << user.line_manager_id

myarray.uniq!

文檔:

uniq的!

采摘

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM