Ruby - 遍历数组中的每个字符串并删除重复的字符

Ruby - Iterate through each string inside an array and remove repeated characters

我需要从每个字符串中单独取出每个重复项,而不是从整个数组中取出。基本上我正在寻找的是数组中每个字符串的 .uniq,而不是整个数组。

示例:

array = ["abc", "abc", "xxzzyyww", "aaaaa"]

预期输出:

["abc", "abc", "xzyw", "a"]

我尝试使用 array.uniqarray.each.uniq 但他们没有单独考虑每个字符串,他们正在检查整个字符串是否在数组中重复,所以它给了我以下内容输出:

["abc", "ab", "xxzzyyww", "aaaaa"]

使用 string#squeeze (https://apidock.com/ruby/String/squeeze)

怎么样
array = ["abc", "abc", "xxzzyyww", "aaaaa"]
# => ["abc", "abc", "xxzzyyww", "aaaaa"]

array.map {|x| x.squeeze }
# => ["abc", "abc", "xzyw", "a"]

输入

array = ["abc", "abc", "xxzzyyww", "aaaaa"]

代码

p array.map { _1.chars.uniq.join }

输出

["abc", "abc", "xzyw", "a"]