新手问题 如何将一维数组转换成哈希

ssqq · 2015年08月27日 · 最后由 killernova 回复于 2015年08月31日 · 2516 次阅读

如何将:

[1,2,3,4]

转换成

{ 1 => 2, 3 => 4 }

虽然可以写一个函数来转换,但总觉得有简单的办法。函数手册看了一遍,也没发现。

只能将两两成对的数组进行转换:

[[1,2],[3,4]]

这个真可以啊,但是这个方法为什么文档中没有呢?

说的是each_slice这个方法么?这个是在Enumerable里面的方法,查 Array 的话不在里面

arr = [1, 2, 3, 4]
hash = Hash[*arr]
hash  #=> {1=>2, 3=>4}

#3 楼 @ywjno Array include Enumerable

>> Array.ancestors
[
    [0] Array < Object,
    [1] Enumerable,
    [2] Object < BasicObject,
    [3] Kernel,
    [4] BasicObject
]

#5 楼 @jackxu 对啊,是继承的关系但是 each_slice 定义在 Enumerable 里面你去查 Array 的文档的话自然找不到这个方法

Hash[1,2,3,4]   #=> {1 => 2, 3 => 4 }

@hooopo 大神啊,敬仰中...

@hooopo 大神们都是把 ruby 所有的方法都记住了吗???

需要 登录 后方可回复, 如果你还没有账号请 注册新账号