gpt4 book ai didi

ruby - 只允许 Ruby 数组中的特定值之一

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

在数组中只允许一个特定值的最佳方法是什么?

例如,我想在以下数组中只允许 cat 的一个值:

["dog", "cat", "cat", "hamster", "rabbit", "dog"]

这样它就返回了:

["dog", "cat", "hamster", "rabbit", "dog"]

编辑:很抱歉没有说清楚,我不是在寻找 uniq!我想确保只有 1 个指定值。

最佳答案

要使一个值唯一:

a = ["dog", "cat", "cat", "hamster", "rabbit", "dog"]

(a.count("cat") - 1).times { a.delete_at(a.index("cat"))}

#=> ["dog", "cat", "hamster", "rabbit", "dog"]

这保留了数组中元素的顺序。

要删除连续的项目:

使用Enumerable#chunk:

a = ["dog", "cat", "cat", "hamster", "rabbit", "dog"]

a.chunk(&:itself).map(&:first)

#=> ["dog", "cat", "hamster", "rabbit", "dog"]

请注意,在 Ruby < 2.2 中,您必须使用 chunk{|w| w} 因为本身没有定义。

关于ruby - 只允许 Ruby 数组中的特定值之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29354285/

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