Ruby:从数组中删除所有非字符串元素

时间:2017-06-27 21:11:02

标签: arrays ruby

我正在尝试在ruby中编写一个函数,给定一个具有不同数据类型的数组,返回一个只包含字符串元素的新数组。例如,给定数组:

<style>
 @media (max-width: 550px) {
     .big-container {display: none;}
 }
 @media (min-width: 550px) {
     .small-container {display: none;}
 }
 /* Responsive iFrame */
 .responsive-iframe-container {
     position: relative;
     padding-bottom: 56.25%;
     padding-top: 30px;
     height: 0;
     overflow: hidden;
 }
 .responsive-iframe-container iframe,   
 .vresponsive-iframe-container object,  
 .vresponsive-iframe-container embed {
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
 }
 </style>

我想编写一个返回一个如下所示的新数组的函数:

arr = [1, 3, 'hello', 'goodbye', 20, 'arrays are fun']

ruby​​中是否有内置函数可以完成给定数组中数据类型的分离?

2 个答案:

答案 0 :(得分:4)

array.delete_if { |obj| !(obj.is_a? String) }

答案 1 :(得分:0)

我找到了一个有效的方法grep

def remove_non_strings(array)
  array.grep(String)
end