Ruby - 遍历数组中的每个字符串并删除重复的字符
Ruby - Iterate through each string inside an array and remove repeated characters
我需要从每个字符串中单独取出每个重复项,而不是从整个数组中取出。基本上我正在寻找的是数组中每个字符串的 .uniq
,而不是整个数组。
示例:
array = ["abc", "abc", "xxzzyyww", "aaaaa"]
预期输出:
["abc", "abc", "xzyw", "a"]
我尝试使用 array.uniq
和 array.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"]
我需要从每个字符串中单独取出每个重复项,而不是从整个数组中取出。基本上我正在寻找的是数组中每个字符串的 .uniq
,而不是整个数组。
示例:
array = ["abc", "abc", "xxzzyyww", "aaaaa"]
预期输出:
["abc", "abc", "xzyw", "a"]
我尝试使用 array.uniq
和 array.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"]