美文网首页
Ruby 中哈希的一些骚操作

Ruby 中哈希的一些骚操作

作者: Vincent_Jiang | 来源:发表于2018-07-05 19:53 被阅读32次

字面量方式创建哈希

irb(main):001:0> { foo: 1, bar: 2 }
=> {:foo=>1, :bar=>2}

clear 方法可以清除哈希里面的数据

irb(main):001:1> { foo: 1, bar: 2 }.clear
=> {}

delete delete_if 可以删除和删除指定条件的键值对

irb(main):001:2> { foo: 1, bar: 2 }.delete(:foo)
=> 1
irb(main):001:3> { foo: 1, bar: 2 }.delete_if { |key, value| key == :foo || value == 1 }
=> {:bar=>2}

reject reject! 也可以删除指定的键值对

irb(main):001:4> { foo: 1, bar: 2 }.reject { |key, value| key == :bar || value == 2 }
=> {:foo=>1}

invert 方法可以用来颠倒键值对

irb(main):001:5> { foo: 1, bar: 2 }.invert
=> {1=>:foo, 2=>:bar}

keys values 可以获取键值的集合

irb(main):001:6> { foo: 1, bar: 2 }.keys
=> [:foo, :bar]
irb(main):001:7> { foo: 1, bar: 2 }.values
=> [1, 2]

has_key? has_value? 方法可以检测哈希中是否包含指定的键值

irb(main):001:8> { foo: 1, bar: 2 }.has_key?(:foo)
=> true
irb(main):001:9> { foo: 1, bar: 2 }.has_value?(1)
=> true

each each_key each_value 用于迭代哈希

irb(main):002:0> { foo: 1, bar: 2 }.each { |key, value| } 
=> {:foo=>1, :bar=>2}
irb(main):002:4> { foo: 1, bar: 2 }.each_key { |k| puts "key = #{k}" }
key = foo
key = bar
=> {:foo=>1, :bar=>2}
irb(main):002:5> { foo: 1, bar: 2 }.each_value { |v| puts "value = #{v}" }
value = 1
value = 2
=> {:foo=>1, :bar=>2}

merge merge! 用来合并两个哈希

irb(main):002:6> { foo: 1 }.merge({ bar: 2 })
=> {:foo=>1, :bar=>2}
irb(main):002:7> { foo: 1 }.merge!({ bar: 2 })
=> {:foo=>1, :bar=>2}

symbolize_keys symbolize_keys! 方法用来将所有的键转换为 symbol

irb(main):002:8> hash = JSON.parse('{ "foo": 1, "bar": 2 }')
=> {"foo"=>1, "bar"=>2}
irb(main):002:9> hash.symbolize_keys!
=> {:foo=>1, :bar=>2}

按键排升序降序

irb(main):002:10> { foo: 1, bar: 2 }.sort { |k, v| k.first <=> v.first }.to_h
=> {:bar=>2, :foo=>1}
irb(main):002:11> { foo: 1, bar: 2 }.sort { |k, v| v.first <=> k.first }.to_h
=> {:foo=>1, :bar=>2}

按值排升序降序

irb(main):002:12> { foo: 1, bar: 2 }.sort { |k, v| k.last <=> v.last }.to_h
=> {:foo=>1, :bar=>2}
irb(main):002:13> { foo: 1, bar: 2 }.sort { |k, v| v.last <=> k.last }.to_h
=> {:bar=>2, :foo=>1}

相关文章

  • Ruby 中哈希的一些骚操作

    字面量方式创建哈希 clear 方法可以清除哈希里面的数据 delete delete_if 可以删除和删除指定条...

  • Ruby 中数组的一些骚操作

    使用字面量直接定义数组 使用 << 操作符直接追加元素 flatten flatten! 方法可以将多维数组合并成...

  • ruby 数据类型

    1. Ruby 字符串(String) 2. Ruby 数组 3. Ruby 哈希 哈希的内置方法 4. Ruby...

  • Ruby 哈希(Hash)

    哈希(Hash)是类似 "key" => "value" 这样的键值对集合。哈希类似于一个数组,只不过它的索引不局...

  • IDEA 中骚操作

    IDEA 有个很牛逼的功能,那就是后缀补全(不是自动补全),很多人竟然不知道这个操作,还在手动敲代码。 这个功能可...

  • 「WTF系列」深入Java中的位操作

    「WTF系列」深入Java中的位操作 关于WTF系列 引 学完本章节你将学会位的基础概念与语法,并且还会一些骚操作...

  • python的一些骚操作

    交换变量值 将列表中的所有元素组合成字符串 找出列表中出现频率最大的值 检查两个字符串是不是由相同字母不同顺序组成...

  • Application的一些骚操作

  • ruby中对质数的操作

    上面的方法是返回一个数组(给出一个n,然后返回n以内的所有质数) 然后如果想简单的话。。。。用下面的 Prime的...

  • 【perl】perl哈希(一)——哈希简介

    本课包含:哈希简介、哈希的操作、哈希函数、哈希的使用、综合实例 哈希简介 概念 hash,也被称作散列 很散,很多...

网友评论

      本文标题:Ruby 中哈希的一些骚操作

      本文链接:https://www.haomeiwen.com/subject/dpcmuftx.html