在每个数组轨中查找重复项

发布于 2024-10-05 04:30:37 字数 375 浏览 6 评论 0原文


<% @sp_references.each |sp_ref| %>
<% sp_ref.all_references.each_with_index do |tax_ref, i| %> <%if (tax_ref.reference.uniq) && (tax_ref.reference!~ /emend$/i) %> <%=tax_ref.reference %> <%结束%> <%结束%> <%end%>


用于获取tax_ref.reference 中不同元素的“uniq”选项不起作用。它显示“# 的未定义方法‘uniq’


<% @sp_references.each do |sp_ref| %>
<% sp_ref.all_references.each_with_index do |tax_ref, i| %>
<%if (tax_ref.reference.uniq) && (tax_ref.reference !~ /emend$/i) %>
<%= tax_ref.reference %>
<%end%>
<%end%>
<%end%>


This 'uniq' option to get distinct elements in tax_ref.reference is not working. It shows "undefined method `uniq' for #

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夜吻♂芭芘 2024-10-12 04:30:37

在我看来, tax_ref.reference 不是一个数组。应该在数组上调用 uniq 。试试这个:

<% sp_ref.all_references.keys.uniq.each do |tax_ref| %>
    <%if (tax_ref.reference !~ /emend$/sp_ref.all_references[tax_ref]) %>
        <%= tax_ref.reference %>
    <%end%>
<% end %>

It seems to me like tax_ref.reference is not an array. uniq should be called on arrays. Try this instead:

<% sp_ref.all_references.keys.uniq.each do |tax_ref| %>
    <%if (tax_ref.reference !~ /emend$/sp_ref.all_references[tax_ref]) %>
        <%= tax_ref.reference %>
    <%end%>
<% end %>
你与清晨阳光 2024-10-12 04:30:37

uniq 是任何可枚举对象(数组)上的方法。所以你不能在tax_ref的引用对象上调用它。

相反,您需要在 sp_ref.all_references 上调用它,例如 sp_ref.all_references.uniq.each

这个 SO Question 对于仅属性重复(不唯一)时过滤掉重复对象有一些建议。

uniq is a method on any enumerable object (arrays). So you can't call it on the reference object of tax_ref.

Instead, you'll want to call it on sp_ref.all_references, like sp_ref.all_references.uniq.each

This SO Question has some suggestions on filtering out duplicate objects when only an attribute is duplicated (not unique).

思慕 2024-10-12 04:30:37
<%arr = Array.new %> <% @sp_references.each do |sp_ref| %> <% sp_ref.all_references.each_with_index do |tax_ref, i| %>  <%if (tax_ref.reference !~ /emend$/i) %>  <% arr.push("#{tax_ref.reference}") %> <%end%>  <%end%>  <%end%> <%= arr.uniq %>

这对我有用。

<%arr = Array.new %> <% @sp_references.each do |sp_ref| %> <% sp_ref.all_references.each_with_index do |tax_ref, i| %>  <%if (tax_ref.reference !~ /emend$/i) %>  <% arr.push("#{tax_ref.reference}") %> <%end%>  <%end%>  <%end%> <%= arr.uniq %>

It works for me.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文