gpt4 book ai didi

ruby-on-rails - 将数组的数组转换为散列,第一个数组的元素作为散列的键

转载 作者:数据小太阳 更新时间:2023-10-29 08:17:12 26 4
gpt4 key购买 nike

我想转换这个数组

[['a', 'b'],['c', 'd'],['e', 'f']] 

到这个散列

{
"a" : "c",
"b" : "d"
},
{
"a" : "e",
"b" : "f"
}

怎么做?

我尝试使用 group_by 和普通迭代器,但到目前为止运气不好。有什么想法吗?

最佳答案

▶ arr = [[:a, :b],[:c, :d],[:e, :f],[:g, :h]]
▶ key, values = arr.first, arr[1..-1]
▶ values.map { |v| key.zip v }.map &:to_h
#⇒ [
# [0] {
# :a => :c,
# :b => :d
# },
# [1] {
# :a => :e,
# :b => :f
# },
# [2] {
# :a => :g,
# :b => :h
# }
# ]

请注意,与目前此处介绍的其他解决方案不同,此解决方案会将第一个元素作为键映射到任意长度的尾部。

UPD 对于遗留 ruby ,没有 Array#to_h:

values.map { |v| key.zip v }.map { |e| Hash[e] }

关于ruby-on-rails - 将数组的数组转换为散列,第一个数组的元素作为散列的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29819403/

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