Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何从哈希键构建新的Ruby数组

如何从哈希键构建新的Ruby数组
EN

Stack Overflow用户
提问于 2016-01-06 09:37:52
回答 3查看 70关注 0票数 0

我想以以下格式从散列开始构建一个新数组:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
HashConst = {[120,240] => 60, [240,480]=> 30} #Constant

我需要构建一个新数组,并以以下格式将其赋值为新常量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[ [[120,240] ,1], [[240,480], 1] ]

我试过:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
NewArrayConst = HashConst.keys.each{ |res| [res, 1]}

但我却得到了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[ [120,240], [240,480] ]

我找到的唯一解决方案如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  tempVar = []
  HashConst.keys.each_with_index{ |res,idx| tempVar [idx] = [res, 1]}
  NewArrayConst = tempVar 

任何人都知道更好的解决方案,并且可以解释为什么我不能从NewArrayConst = HashConst.keys.each{ |res| [res, 1]}获得我期望的输出。我用的是2.2.2-p95

编辑:

正如许多人指出的,哈希变量名称是错误的和误导的,我已经更新了它,以避免混淆。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-06 09:41:12

您需要使用map而不是each

Array#each方法不返回在块中执行的代码的结果,而是返回调用each的数组,在您的示例中,该数组是hash.keys的值。

Array#map将块返回的值收集到数组中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hash = {[120,240] => 60, [240,480]=> 30}
p array = hash.keys.map{ |res| [res, 1]}
#=> [[[120, 240], 1], [[240, 480], 1]]

注意:不要命名变量Hash,因为它在Hash中已经是一个众所周知的类了。如果需要使用小写hash。此外,对于变量名(如NewArrayConst ),避免使用camel大小写,因为Ruby建议使用snake_case来命名变量--有关更多细节,您可以参考红宝石风格指南

票数 5
EN

Stack Overflow用户

发布于 2016-01-06 10:18:30

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
h = {[120,240] => 60, [240,480]=> 30}
val = 1

h.keys.product([val])
  #=> [[[120, 240], 1], [[240, 480], 1]] 
票数 3
EN

Stack Overflow用户

发布于 2016-01-06 09:41:29

你试过Hash.to_a了吗?有时候事情比你想象的容易。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34639263

复制
相关文章
LeetCode *1743. 从相邻元素对还原数组(哈希)
存在一个由 n 个不同元素组成的整数数组 nums ,但你已经记不清具体内容。好在你还记得 nums 中的每一对相邻元素。
SakuraTears
2022/01/13
4050
LeetCode *1743. 从相邻元素对还原数组(哈希)
MongoDB范围片键和哈希片键
MongoDB的片键决定了集合中存储的数据在集合中的分布情况,具体的方法是使用片键值的范围来对集合中的数据进行分区。举个例子:
AsiaYe
2020/12/29
1.3K0
MongoDB范围片键和哈希片键
[PHP] PHP数组的哈希表实现
1.HashTable中的有个字段记录元素个数,每插入一个元素或者unset删掉元素时会更新这个字段。这样在进行count()函数统计数组元素个数时就能快速的返回。
唯一Chat
2020/12/31
1.3K0
《Effective-Ruby》读书笔记
《Effictive Ruby》就是一本致力于让你在第二阶段更加深入和全面的了解 Ruby,编写出更具可读性、可维护性代码的书,下面我就着一些我认为的重点和自己的思考来进行一些精简和说明
我没有三颗心脏
2019/05/15
4K0
如何运行ruby代码
第一种,ruby -e 在命令行中运行下面命令,-e的意思是,把后面的字符串当作脚本执行 ruby -e "print 'hello'" 使用irb交互控制台 在命令行输入irb hello worldxingoo@xingoo-Lenovo:~/workspace/RubyTest$ irb irb(main):001:0> p "hello" "hello" => "hello" irb(main):002:0> p "中文hello" "中文hello" => "中文hello" irb(main):
用户1154259
2018/01/17
1.4K0
「Spring Boot 2.4 新特性」一键构建Docker镜像
在我们开发过程中为了支持 Docker 容器化,一般使用 Maven 编译打包然后生成镜像,能够大大提供上线效率,同时能够快速动态扩容,快速回滚,着实很方便。docker-maven-plugin 插件就是为了帮助我们在 Maven 工程中,通过简单的配置,自动生成镜像并推送到仓库中。
冷冷
2020/11/24
1K0
「Spring Boot 2.4 新特性」一键构建Docker镜像
如何高效的从数组数据生成树状层级数组?
任何无限极分类都会涉及到创建一个树状层级数组。从顶级分类递归查找子分类,最终构建一个树状数组。如果分类数据是一个数组配置文件,且子类父类id没有明确的大小关系。那么我们如何高效的从一个二维数组中构建我们所需要的树状结构呢。
写PHP的老王
2019/08/12
2.6K0
如何高效的从数组数据生成树状层级数组?
哈希表:可以拿数组当哈希表来用,但哈希值不要太大!
先看暴力的解法,两层for循环,同时还要记录字符是否重复出现,很明显时间复杂度是 O(n^2)。
代码随想录
2020/08/19
6340
哈希表:可以拿数组当哈希表来用,但哈希值不要太大!
【C++】数组插入哈希表
第三种的话,我本来就是要大量插入定长数组的,用不着扩容,vector是类,杀鸡焉用牛刀呢。。。
看、未来
2021/12/17
1.1K0
[PHP] PHP数组的实现哈希表(HashTable)结构
PHP中使用最为频繁的数据类型非字符串和数组莫属,使用哈希表实现的PHP数组。 1.数据结构:保存哈希表容器,保存数据的容器 2.哈希函数实现:需要尽可能的将不同的key映射到不同的槽(bucket)中,首先我们采用一种最为简单的哈希算法实现,将key字符串的所有字符加起来,然后以结果对哈希表的大小取模,这样索引就能落在数组索引的范围之内了 3.操作接口函数:初始化,查找,插入,删除,销毁
唯一Chat
2019/09/10
1.2K0
如何使用DragonCastle从LSASS进程中提取NTLM哈希
 关于DragonCastle  DragonCastle是一款结合了AutodialDLL横向渗透技术和SSP的安全工具,该工具旨在帮助广大研究人员从LSASS进程中提取NTLM哈希。 该工具会向目标设备中上传一个DLL,然后它会启用远程注册表功能以修改AutodialDLL条目并启动/重启BITS服务。Svchosts将负责加载我们上传的DLL,再次将AutodialDLL设置为默认值,并执行RPC请求以强制LSASS加载与安全支持提供程序相同的DLL。一旦LSASS加载了DLL,它就会在进程内存中进行
FB客服
2023/04/26
6610
如何使用DragonCastle从LSASS进程中提取NTLM哈希
如何从文本中构建用户画像
一文告诉你什么是用户画像 介绍了到底什么是用户画像,了解了用户画像的本质是为了让机器去看之后,这里谈一谈如何从文本中构建用户画像。
abs_zero
2018/04/11
4.8K0
如何从文本中构建用户画像
前端新的构建范式
前端的交付基于浏览器,资源是通过增量加载的方式运行到浏览器端,如何在开发环境组织好这些碎片化的代码和资源,并且保证他们在浏览器端快速、优雅的加载和更新,是前端发展中一直探索的难题。
奋飛
2021/09/30
7780
前端新的构建范式
Google 是如何设计 Ruby Serverless Runtime 的?
Google 在设计 Ruby Serverless Runtime 时面临的一些设计问题,做出的决策以及为什么做出这些决策。
donghui
2021/02/01
2.2K0
Google 是如何设计 Ruby Serverless Runtime 的?
哈希——349. 两个数组的交集
示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2]
向着百万年薪努力的小赵
2022/12/02
4820
前端新的构建范式
前端的交付基于浏览器,资源是通过增量加载的方式运行到浏览器端,如何在开发环境组织好这些碎片化的代码和资源,并且保证他们在浏览器端快速、优雅的加载和更新,是前端发展中一直探索的难题。
奋飛
2021/12/30
6360
前端新的构建范式
Ruby学习笔记之升级ruby的版本
升级ruby版本,有时候安装ruby的版本过低,需要进行升级,例如安装在centos6.7安装fpm需要ruby版本在1.9以上。
Jetpropelledsnake21
2019/04/25
3.2K0
如何让服务器从30台缩减到2台的:从Ruby迁移到Go语言
我们开发第一版的IronWorker已经是3年前的事了,是用Ruby写的,API基于Rails开发。我们没用多久就发展成了相当大的规模,很快我们就触及到了Ruby程序的承载上限。长话短说,我们切换到了
李海彬
2018/03/20
1.6K0
如何让服务器从30台缩减到2台的:从Ruby迁移到Go语言
从列表中或数组中随机抽取固定数量的元素组成新的数组或列表
2:jQuery版本 那么jQuery中怎么随机选出固定数组数组[1, 2, 3, 4, 5, 6, 7, 8, 9]中的三个元素,并构造成新数组的?
王小婷
2018/08/02
6K0
点击加载更多

相似问题

Ruby:如何添加新的数组哈希?

40

如何在Ruby中迭代哈希数组,然后使用迭代的哈希值填充新的哈希键

50

ruby从url构建哈希

20

ruby如何使用新键和数组中的值来生成哈希

46

Ruby 2.7计数哈希键数组

214
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文