首页 > 解决方案 > Ruby - 从数组中删除一个值

问题描述

当我尝试从数组中删除一个值并使用相同的数组对象映射以创建新数组但它无法正常工作时出现错误未定义的方法“删除”。

@test = ["ab","cd","ef"]
@test.map.delete("ab")

NoMethodError(未定义的方法“删除”#)

标签: rubyruby-on-rails-3ruby-on-rails-5

解决方案


您也可以使用tap尝试此操作,

irb(main):009:0> test = ["ab","cd","ef"]
=> ["ab", "cd", "ef"]
irb(main):010:0> test.tap {|i| i.delete("ab")}
=> ["cd", "ef"]

或者

irb(main):019:0> test = ["ab","cd","ef"]
=> ["ab", "cd", "ef"]
irb(main):020:0> test -= ["ab"]
=> ["cd", "ef"]

或者你可以使用delete_if

irb(main):031:0> @test = ["ab","cd","ef"]
=> ["ab", "cd", "ef"]
irb(main):032:0> @test.delete_if{|i|i=="ab"}
=> ["cd", "ef"]
irb(main):033:0> @test
=> ["cd", "ef"]

推荐阅读