红宝石哈希作为数组的第一个元素

我怀疑

我正在从API解析JSON。foo有时候,我有一个元素是一个哈希,而另一个是哈希数组。

foo: { ... }

foo: [
  { ... },
  { ... }
]

我只想使用Array(foo)总是获得至少包含一个元素的数组,但是它将哈希转换为[[..., ...], [..., ...]]除了使用之外,还有一种优雅的方式来处理此问题foo.is_a?(Hash/Array)吗?

严厉的古普塔

添加到@yez答案,如果您不使用activesupport,则可以扩展Array为具有以下wrap功能:

def Array.wrap(object)
  if object.nil?
    []
  elsif object.respond_to?(:to_ary)
    object.to_ary || [object]
  else
    [object]
  end
end

http://apidock.com/rails/Array/wrap/class复制

实现它的另一种粗略方法是:

def Array.wrap(object)
  return [] if object.nil?
  [object].flatten(1)
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将第一个数组的元素作为哈希键,将数组数组转换为哈希值

使用键作为字符串,按哈希的第一个元素对哈希数组进行排序

红宝石数组的最后一个元素为nil

数组第一个元素

哈希定义到导致空点异常的数组的第一个元素

比较红宝石中的两个哈希数组,除了一个键

保留数组的第一个元素作为序列的一部分

结构指针数组作为struct的第一个元素

从数组返回第一个元素作为Ember控制器子类的计算属性

返回数组的 Computercraft 函数,使用第一个元素作为布尔值

使用数组的第一个元素作为顶部实现堆栈

如何添加一个空字符串作为现有数组的第一个元素?

替换数组的第一个 `m` 个元素

选择div的第一个图像作为数组

用红宝石删除数组中的下一个元素

为红宝石数组的每个元素创建一个实例

红宝石/正则表达式获取每个单词的第一个字母

如何获取Perl中第二个哈希数组中不存在的第一个哈希数组元素

Javascript - 计算多维数组的第一个元素

查找包含“-”的数组的第一个元素

for循环未处理数组的第一个元素

如何按数组的第一个元素分组?

JS减少丢失数组的第一个元素

显示第一个数组元素 - ReactJS

Elasticsearch按数组的第一个元素排序

指向数组第一个元素之前的指针

如何获得数组的第一个元素?

获取数组的第一个元素

跳过Golang中数组的第一个元素