我试图弄清楚如何根据 if 语句分配列表的特定元素。
这是列表:
@x = ["american", "assistive", "audio", "blind", "braille", "closed-captioning", "closed-captioning", "deaf", "low", "phone", "question-circle", "question-circle", "sign", "tty", "universal", "wheelchair"]
这是我的haml代码:
%ul.list-inline
- @x.each do |i|
- if i[0].length < i[1].length
%li
%i{:class=>"fas fa-#{i[0]} fa-2x"}
%span.f6 #{i[0]}
- else
%li
%i{:class=>"far fa-#{i[1]} fa-2x"}
%span.f6 #{i[1]}
我想要做的是确定列表中每个字符串的长度并将其与列表中下一个字符串的长度进行比较。
一旦第二个字符串被确定为重复,它应该在 else 语句下。
我面临的问题是,通过使用 i[0],而不是列表中的第一个字符串,我得到了列表中每个字符串的第一个字母。
我不知道我使用长度的方式是否是解决这个问题的最佳方式,所以如果其他人有更好的解决方案,我愿意接受,只要它能完成工作。
我在想,如果我可以根据哪些元素是唯一的和哪些是重复的来过滤列表中的元素,那么我可以相应地分配它们。
但我该怎么做呢?
谢谢你。