arrays – 删除另一个数组中存在的数组元素

前端之家收集整理的这篇文章主要介绍了arrays – 删除另一个数组中存在的数组元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有一个单词列表和禁止单词列表.我想通过单词列表并编辑所有被禁止的单词.这就是我最终做的事情(请注意catched boolean):
puts "Give input text:"
text = gets.chomp
puts "Give redacted word:"
redacted = gets.chomp

words = text.split(" ")
redacted = redacted.split(" ")
catched = false

words.each do |word|
  redacted.each do |redacted_word|
    if word == redacted_word
        catched = true
        print "REDACTED "
        break
    end
  end
    if catched == true
        catched = false
    else
        print word + " "
    end
end

有没有适当/有效的方法

解决方法

您可以使用 .reject排除编辑数组中存在的所有禁止词:
words.reject {|w| redacted.include? w}

Demo

如果要获取单词数组中出现的禁止单词列表,可以使用.select

words.select {|w| redacted.include? w}

Demo

猜你在找的Ruby相关文章