如何将:
[1,2,3,4]
转换成
{ 1 => 2, 3 => 4 }
虽然可以写一个函数来转换,但总觉得有简单的办法。函数手册看了一遍,也没发现。
只能将两两成对的数组进行转换:
[[1,2],[3,4]]
each_slice(2).to_h
这个真可以啊,但是这个方法为什么文档中没有呢?
说的是each_slice这个方法么?这个是在Enumerable里面的方法,查 Array 的话不在里面
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 所有的方法都记住了吗???