Ruby数组的各种使用
来源:互联网 发布:sql 日期 变量 慢 编辑:程序博客网 时间:2024/05/16 05:06
1. 如何创建数组?
最简单的,x=[]将创建一个空数组:
另外还可以使用标准的new方法,任何数组都是Array类的实例。
上述第一个创建空数组,第二个创建预设SIZE的数组,第三个创建预设SIZE和值的数组。
跟Hash一样,第三种方法填充的预设值,都指向同一个目标。
任何一个位置的目标改变了,都影响所有元素的值:
创建的数组,每个元素都是唯一目标,要这样做:
当然还可以如下创建数组:
不过很少使用,不如x=[1,2,3]来的简洁方便。
2. 如何访问数组?
使用数组下标:
0表示第一个元素,-1表示最后一个元素,其他类推。
还有first和last方法:
first和last可以带一个整数参数,表示返回首尾多少个元素。
遍历数组使用each方法:
3. 数组的slice?
数组的slice可以对数组切片,返回指定位置和长度的片段。
第一个表述从0位置开始切片,长度为2,返回2个元素。
第二个表示从0位置开始切片,到2位置结束,返回3个元素。
第三个表示从0位置开始切片,到2位置结束,但是不包括最后一位,返回2个元素。
4. 如何修改数组?
数组有push和<<方法,表示添加元素到数组尾部:
pop方法表示从尾部删除元素,shift表示从首部删除元素:
对应的有unshift方法,表示从首部添加元素:
数组的insert方法可以在指定位置插入元素:
当然delete和delete_at方法可以删除对应的元素。
delete_at的参数是数组索引:
5. 数组的加减操作?
ruby很灵活,任何目标都可以定义自己的方法。
数组就定义了加减方法(当然还有乘除,不过很少使用)。
所谓加就是把两个数组合并起来,所谓减就是把相同的元素排除掉。
而且这个减似乎不在意元素顺序:
6. 求唯一数组?
在ruby里这个很方便,用uniq方法:
当然x.uniq!这样加个叹号,表示毁坏性方法,不返回而是直接改变x目标自身。
7. 数组的比较?
可以直接用==进行比较:
8. 数组的类型转换?
数组可以转换成串,使用to_s或者join方法:
串也可以转换成数组:
这可能不是你想要的,那么执行:
Hash可以直接转换成二维数组:
数组可以转换成hash,见我前一篇帖子。
9. 如何查找数组元素?
include?判断是否包含该元素,返回true或false。
find找出符合条件的一个元素,返回该元素。
select找出符合条件的所有元素,返回结果也是数组。
10. 数组的排序?
使用sort:
还有sort_by方法,接受一个block作为参数,按照指定规则进行排序。
11. 其他实用数组方法?
展开数组:
清空数组:
替换数组:
合并数组:
12. 数组的inject方法?
inject的参数0表示初始化sum,item表示遍历每一个元素,在block里不断自加,最后返回累计加值。
上述inject作用,表示取数组的每个元素的负值,返回一个新数组。当然用map更简洁:
map的item也表示遍历数组元素,对元素进行计算后,返回一个结果数组。
最简单的,x=[]将创建一个空数组:
另外还可以使用标准的new方法,任何数组都是Array类的实例。
上述第一个创建空数组,第二个创建预设SIZE的数组,第三个创建预设SIZE和值的数组。
跟Hash一样,第三种方法填充的预设值,都指向同一个目标。
任何一个位置的目标改变了,都影响所有元素的值:
创建的数组,每个元素都是唯一目标,要这样做:
当然还可以如下创建数组:
不过很少使用,不如x=[1,2,3]来的简洁方便。
2. 如何访问数组?
使用数组下标:
0表示第一个元素,-1表示最后一个元素,其他类推。
还有first和last方法:
first和last可以带一个整数参数,表示返回首尾多少个元素。
遍历数组使用each方法:
3. 数组的slice?
数组的slice可以对数组切片,返回指定位置和长度的片段。
第一个表述从0位置开始切片,长度为2,返回2个元素。
第二个表示从0位置开始切片,到2位置结束,返回3个元素。
第三个表示从0位置开始切片,到2位置结束,但是不包括最后一位,返回2个元素。
4. 如何修改数组?
数组有push和<<方法,表示添加元素到数组尾部:
pop方法表示从尾部删除元素,shift表示从首部删除元素:
对应的有unshift方法,表示从首部添加元素:
数组的insert方法可以在指定位置插入元素:
当然delete和delete_at方法可以删除对应的元素。
delete_at的参数是数组索引:
5. 数组的加减操作?
ruby很灵活,任何目标都可以定义自己的方法。
数组就定义了加减方法(当然还有乘除,不过很少使用)。
所谓加就是把两个数组合并起来,所谓减就是把相同的元素排除掉。
而且这个减似乎不在意元素顺序:
6. 求唯一数组?
在ruby里这个很方便,用uniq方法:
当然x.uniq!这样加个叹号,表示毁坏性方法,不返回而是直接改变x目标自身。
7. 数组的比较?
可以直接用==进行比较:
8. 数组的类型转换?
数组可以转换成串,使用to_s或者join方法:
串也可以转换成数组:
这可能不是你想要的,那么执行:
Hash可以直接转换成二维数组:
数组可以转换成hash,见我前一篇帖子。
9. 如何查找数组元素?
include?判断是否包含该元素,返回true或false。
find找出符合条件的一个元素,返回该元素。
select找出符合条件的所有元素,返回结果也是数组。
10. 数组的排序?
使用sort:
还有sort_by方法,接受一个block作为参数,按照指定规则进行排序。
11. 其他实用数组方法?
展开数组:
清空数组:
替换数组:
合并数组:
12. 数组的inject方法?
inject的参数0表示初始化sum,item表示遍历每一个元素,在block里不断自加,最后返回累计加值。
上述inject作用,表示取数组的每个元素的负值,返回一个新数组。当然用map更简洁:
map的item也表示遍历数组元素,对元素进行计算后,返回一个结果数组。
阅读全文
0 0
- Ruby数组的各种使用
- Ruby数组的各种使用
- ruby 数组的使用
- ruby中数组的定义和使用
- 各种排序的Ruby实现
- Ruby的数组(Arrays)
- ruby的数组操作
- Ruby数组的操作
- ruby的数组操作
- ruby 的数组操作
- Ruby各种枚举方法及其使用【001】
- Ruby各种枚举方法及其使用【001】
- 充分理解数组的含义:各种数组方法的使用
- js基础:数组基础和数组方法的各种使用
- js基础:数组基础和数组方法的各种使用
- js基础:数组基础和数组方法的各种使用
- javascript数组基础和数组方法的各种使用
- ruby对文件的各种操作
- 使用ButterKnife方法,点击事件响应里面,执行performClick失效,不能再同一帧响应多个点击事件
- 第六课 Python新浪新闻爬虫最终整理总结
- 体验异步的终极解决方案-ES7的Async/Await
- 监听器,拦截器,过滤器的区别
- 驱动框架
- Ruby数组的各种使用
- java 浅析跨域问题以及如何使用Cors解决前后端分离部署项目所遇到的跨域问题
- .h 与 .hpp 文件
- 番茄助手Visual Assist X文中注释实用方法
- 《神经网络与深度学习》学习笔记
- Android 6.0 之AlarmManagerService源码分析
- 什么是概率?对我有什么用?
- activiti学习--07流程历史数据
- 第11章 曲线积分与曲面积分