Я думал, что это будет интересный вопрос для публикации. У меня есть решение, мне интересно, есть ли лучший способ сделать это. Скажем, у вас есть этот массив:
names = ["on", "question", "quest"]
Я хочу исключить строки, которые являются подстрока других членов в массиве. Самый чистый код, который я мог придумать:
names.select do |name|
names.all? { |other_name| other_name == name || other_name.match(name).nil? }
end
Результат
["question"]
Я ненавижу этот код, просто не похоже на рубиновый. Любые предложения о лучшем / более эффективном / более кратком способе сделать это?
Спасибо за помощь.