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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...