显示数组的子集

 无限制空间689 发布于 2023-02-09 18:55

说我想要puts字母表.所以我可以这样做:

alphabet = ('a'..'z')
alphabet.map do |a|
    puts a
end

我现在要做的是排除vowels.

alphabet = ('a'..'z')
vowels   = ['a','e','i','o','u']
alphabet.map do |a|
    puts a unless a == vowels
end

我试图避免这种情况:

alphabet = ('a'..'z')
alphabet.map do |a|
    puts a unless a == 'a'
    puts a unless a == 'e'
    puts a unless a == 'i'
    puts a unless a == 'o'
    puts a unless a == 'u'
end

我如何在语法上实现第二个示例,以便它正常工作?

1 个回答
  • 范围可以扩展为数组.然后你可以减去另一个数组.

    chars = ('a'..'z').to_a - %w( a e i o u )
    chars.each do |a|
        puts a
    end
    

    作为旁注,#map除非你真的需要,否则不要使用.使用#each,如果你不关心的返回值.

    2023-02-09 18:58 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有