在Ruby中,是否有一种方法可以轻松删除数组中的一个匹配项?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (54)

在Ruby中,数组减去或 reject

>> [1,3,5,7,7] - [7]
=> [1, 3, 5]

>> [1,3,5,7,7].reject{|i| i == 7}
=> [1, 3, 5]

将删除数组中的所有条目。那么有一个容易的只发生一次的删除操作吗?

提问于
用户回答回答于
>> a = [1,3,5,7,7]

>> a.slice!(a.index(7))
=> 7

>> a
=> [1,3,5,7]
用户回答回答于

我能想到的就是:

found = false
[1,3,5,7,7].reject{|i| found = true if !found && i == 7}

或:

arr = [1, 2, 3, 5, 7, 7]
arr.delete_at( arr.index(7))
arr #=> [1, 2, 3, 5, 7]

扫码关注云+社区