gpt4 book ai didi

ruby - 在 Ruby 中保留数组索引值的同时将数组转换为哈希

转载 作者:数据小太阳 更新时间:2023-10-29 06:39:09 25 4
gpt4 key购买 nike

我有一个数组,其中包含 X 个值。下面的数组只有 4 个,但我需要代码是动态的,而不是依赖于只有四个数组对象。

array = ["成人", "家庭", "单例", " child "]

我想将 array 转换为如下所示的散列:

hash = {0 => '成人', 1 => '家庭', 2 => '单例', 3 => ' child '

散列应具有与数组中对象一样多的键/值对,值应从 0 开始,每个对象递增 1。

最佳答案

使用 Enumerable#each_with_index :

Hash[array.each_with_index.map { |value, index| [index, value] }]
# => {0=>"Adult", 1=>"Family", 2=>"Single", 3=>"Child"}

正如@hirolau 评论的那样,each_with_index.map 也可以写成map.with_index

Hash[array.map.with_index { |value, index| [index, value] }]
# => {0=>"Adult", 1=>"Family", 2=>"Single", 3=>"Child"}

更新

使用替代品Hash#invert :

Hash[array.map.with_index{|*x|x}].invert
# => {0=>"Adult", 1=>"Family", 2=>"Single", 3=>"Child"}
Hash[[*array.map.with_index]].invert
# => {0=>"Adult", 1=>"Family", 2=>"Single", 3=>"Child"}

关于ruby - 在 Ruby 中保留数组索引值的同时将数组转换为哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19330612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com