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



我需要从每个字符串单独取出每个重复,但不是从整个数组中取出。基本上,我要寻找的是数组内每个字符串的.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"]