查找并替换特定的哈希值及其在数组中的值

伊利亚·切列夫科夫(Ilya Cherevkov)

在数组中查找特定散列并就地替换其值,以便更改数组的最有效方法是什么?

到目前为止,我已经获得了这段代码,但是在具有大量数据的真实应用程序中,这成为应用程序中最慢的部分,这可能会泄漏内存,因为当我对每个websocket消息执行此操作时,无界内存会不断增长。

array = 
  [ 
    { id: 1,
      parameters: {
        omg: "lol"
     },
     options: {
         lol: "omg"
      }
    },
    { id: 2,
      parameters: {
        omg: "double lol"
      },
      options: {
        lol: "double omg"
      }
    }
  ]

selection = array.select { |a| a[:id] == 1 }[0]
selection[:parameters][:omg] = "triple omg"
p array
# => [{:id=>1, :parameters=>{:omg=>"triple omg"}, :options=>{:lol=>"omg"}}, {:id=>2, :parameters=>{:omg=>"double lol"}, :options=>{:lol=>"double omg"}}]
机架

这将使您仅浏览一次记录即可:

array.each { |hash| hash[:parameters][:omg] = "triple omg" if hash[:id] == 1 }

您可以随时扩展该块以处理其他条件:

array.each do |hash| 
  hash[:parameters][:omg] = "triple omg" if hash[:id] == 1
  hash[:parameters][:omg] = "quadruple omg" if hash[:id] == 2
  # etc
end

而且,它将只对元素进行一次迭代。

也可能是您更适合将数据调整为单个哈希。一般来说,搜索散列比使用数组要快,特别是如果您具有唯一的标识符(如此处)。就像是:

{ 
  1 => {
    parameters: {
      omg: "lol"
    },
    options: {
      lol: "omg"
    }
  },
  2 => {
    parameters: {
      omg: "double lol"
    },
    options: {
      lol: "double omg"
    }
  } 
}

这样,您可以调用以下内容来实现自己的目标:

hash[1][:parameters][:omg] = "triple omg"

希望能对您有所帮助-让我知道您的处理方法或有任何疑问。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在哈希中查找数组的特定值的总和

来自分类Dev

在数组C ++中查找特定值

来自分类Dev

在数组中查找值

来自分类Dev

在数组属性值中查找特定字符串

来自分类Dev

根据特定值在数组中查找某个索引

来自分类Dev

Swift:在数组中查找值并返回特定键

来自分类Dev

在哈希中的数组中查找值的键

来自分类Dev

ruby 在哈希数组中查找值

来自分类Dev

在数组中查找唯一值

来自分类Dev

在数组中查找交换的值

来自分类Dev

在数组中查找相同的值序列

来自分类Dev

在数组中查找等于输入值的对

来自分类Dev

查找值在数组中的位置

来自分类Dev

在数组中查找附近的值

来自分类Dev

从哈希数组中获取特定键的值

来自分类Dev

如何通过特定属性在数组中查找特定值元素?

来自分类Dev

在数组中搜索特定值

来自分类Dev

在数组中搜索值匹配项并替换值-php

来自分类Java

在数组列表中查找重复值并打印重复值

来自分类Dev

查找并替换numpy ndarray中的特定值?

来自分类Dev

使用PostgreSQL根据特定列在数组中查找重复值

来自分类Dev

查找在数组中包含特定值但不是最后一个元素的文档

来自分类Dev

如何基于数组porp的值在数组中查找元素

来自分类Dev

在数组中搜索特定值并返回值

来自分类Dev

从哈希键中的数组中查找值,并返回零计数

来自分类Dev

在numpy数组中查找X值并替换为随机值

来自分类Dev

根据逻辑替换数组中的特定值

来自分类Dev

在数组中的不同对象中查找 XPath 的值

来自分类Dev

查找包含特定值的所有组合,其中所有值在数组中彼此相邻