从Ruby中的数组中删除字符串

Bit*_*ise 0 ruby

假设我有一个看起来像这样的数组:

arr = [ 1, 5, "dog", 6 ]
Run Code Online (Sandbox Code Playgroud)

如何删除字符串,以便我的输出如下所示:

[ 1, 5, 6 ]
Run Code Online (Sandbox Code Playgroud)

Ale*_*kin 5

另一种方法是使用大小写相等:

[1, 5, "dog", 6].reject &String.method(:===)
#? [1, 5, 6]
Run Code Online (Sandbox Code Playgroud)

  • 这是不必要的聪明.`拒绝{| s | String === s}`更短,更清晰,而且(我猜)更高效. (2认同)