ruby - Ruby - 从数组中删除一个值
问题描述
当我尝试从数组中删除一个值并使用相同的数组对象映射以创建新数组但它无法正常工作时出现错误未定义的方法“删除”。
@test = ["ab","cd","ef"]
@test.map.delete("ab")
NoMethodError(未定义的方法“删除”#)
解决方案
您也可以使用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"]
推荐阅读
- javascript - 扩展接口似乎没有实现父成员
- flutter - Flutter:如何使用具有动态范围滑块的范围模型(或任何状态管理包)?已编辑
- python - 如何使用 js 设置 Access-Control-Allow-Origin
- ios - 如何在 iOS Swift 中使用 Firebase FCM 令牌在 PubNub 上注册推送通知
- stm32 - STM32H7 在 OBFlash 中更改 boot1 地址
- ansible - 如何将我的任务的输出与所需的操作进行比较?
- git - 如何从 Gerrit 中的不同关系链中提取提交
- java - 什么是 java.constructors.single()?
- c++ - 这段 C++ 代码的时间复杂度是多少
- mysql - Laravel 部署到谷歌云应用引擎问题