ruby中的数组相关方法介绍
l = ["a","b","c","d","e","f",'g'] puts l.values_at(2,3,4,6)
# 获取index为2、3、4、6的元素
#
#
l1 = ["a","b","c","d","e","f",'g']
l2 = ["a","b","c","d",1,2,3] l = l1 & l2
# 取交集 puts l l = l1 | l2
# 取并集
puts l l = l1 - l2
# 获取在l1中,但是不是在l2中的元素 puts l l = l1 + l2
# 获取l1和l2两个集合中的合集,这个是两个集合的简单相加,会有重复元素
puts l puts "=" * 100
l = ["a","b","c","d",1,2,3] l.unshift("0")
# 在数组头部追加一个元素
puts l puts "=" * 100
l = ["a","b","c","d",1,2,3]
l.push(4)
# 在数组尾部追加一个元素
#
#
l<< 5
# 在数组尾部追加一个元素
puts l puts "=" * 100
l = ["a","b","c","d",1,2,3] a = l.shift
# 从头部删除一个元素,同时可以接受到删除的元素
puts l
puts a puts "=" * 100
l = ["a","b","c","d",1,2,4] a = l.pop
# 从数组的尾部删除一个元素,同时可以接受到删除的的元素 puts l puts a puts "=" * 100
l = ["a","b","c","d",1,2,4] puts l.first
# 获取头部第一个元素
puts l.last
# 获取尾部第一个元素
#
#
#
#
puts "=" * 100
l1 = ["a","b","c","d","e"]
l2 = [1,2,3,"a"] l1.concat(l2)
# 连接l1和l2,把l2追加到l1的后面,这个操作会重新赋值l1 puts l1 puts "=" * 100
l = [1,2,3,4,1,"a","b"] l.delete(1)
# 删除数组中的指定元素
puts l puts "=" * 100
l = [1,2,3,4,1,"a","b"] l.delete_at(2)
# 删除数组中索引为2的元素
puts l puts "=" * 100
l = [1,2,3,4,1,6,7] l.delete_if {|i| i > 2 }
# 删除数组中大于2的元素 puts l puts "=" * 100
l = [1,2,3,4,1,6,7] l = l.reject {|i| i > 2 }
# 删除数组中大于2的元素,把删除后的元素赋值给一个新的数组,原来的数组不影响
puts l puts "=" * 100
l = [1,2,3,4,1,6,7] l.reject! {|i| i > 2 }
# 删除数组中大于2的元素,把删除后的元素赋值给原数组
puts l puts "=" * 100
l = [1,2,3,4,1,6,7] m = l.slice(1,3)
# 删除索引为1到3的元素,并把删除的元素赋值给新的数组,对原数组无影响
puts m puts "=" * 100
l = [1,2,3,4,1,6,7] m = l.slice!(1,3)
# 删除索引为1到3的元素,并把删除的元素赋值给新的数组,对原数组有影响
puts l puts "=" * 100
l = [1,2,3,4,1,6,7] m = l.uniq
# 移除数组中的重复元素,并把移除重复元素后的数组赋值给一个新的数组,对原数组无影响
# puts m
puts l puts "=" * 100
l = [1,2,3,4,1,6,7] m = l.uniq!
# 移除数组中的重复元素,并把移除重复元素后的数组赋值给一个新的数组,对原数组有影响
puts m
puts l puts "=" * 100
l = [1,2,3,4,1,6,7] m = l.reverse
# 翻转数组,对原数组无影响,翻转后的数组赋值给新的数组
puts l
puts m puts "=" * 100
l = [1,2,3,4,1,6,7] m = l.reverse!
# 翻转数组,对原数组有影响,翻转后的数组赋值给新的数组
puts m
puts l puts "=" * 100
l = [1,2,3,4,1,6,7] m = l.collect {|item| item * 2 } # 对原数组中的每个元素执行块中的运算,把计算后的元素赋值给一个新的元素,对原数组无影响 puts "=" * 100
l = [1,2,3,4,1,6,7] m = l.collect! {|item| item * 2 }
# 对原数组中的每个元素执行块中的运算,把计算后的元素赋值给一个新的元素,对原数组有影响
# puts "=" * 100
l = [1,2,3,4,1,6,7] m = l.map {|item| item + 100 } # 效果同collect puts "=" * 100
l = [1,2,3,4,1,6,7] m = l.map! {|item| item + 100 } # 效果同collect!
puts "=" * 100
l = [1,2,3,4,1,6,7] l.fill(2)
# 替换数组中的所有元素为2
puts l puts "=" * 100
l = [1,2,"a","a",1,6,7] l.fill(3,3)
# 替换数组索引从3开始都尾部的所有的元素为3 puts l puts "=" * 100
l = [1,2,"a","a",1,6,7] l.fill(100,3,6)
# 替换数组索引从3开始到6结束的所有的元素为3
puts l puts "=" * 100
l = [1,2,"a","a",[1,1,2,["c","c","d"]]]
l.flatten
# 展开嵌套的数组,对原数组无影响,展开后的数组会赋值给一个新的数组 puts "=" * 100
l = [1,2,"a","a",[1,1,2,["c","c","d"]]]
l.flatten!
# 展开嵌套的数组,对原数组有影响
#
#
# puts "=" * 100
l = [1,2,0,100,1,6,7] m = l.sort
# 对数组进行排序,不影响原数组
puts m puts "=" * 100
l = [1,2,0,100,1,6,7] m = l.sort!
# 对数组进行排序,影响原数组
puts m puts "=" * 100
l = [1,2,0,100,1,6,7] m = l.sort_by{|i| -i}
# 对数组进行指定方法的排序,对原数组无影响
puts m puts "=" * 100
l = [1,2,0,100,1,6,7] m = l.sort_by!{|i| -i}
# 对数组进行指定方法的排序,对原数组影响
puts m
l1 = ["a","b","c"] l2 = ["A","B","C"] l3 = ["x","y","z"] r = l1.zip(l2,l3) r.each do |i| puts i
end
ruby中的数组相关方法介绍的更多相关文章
- PHP删除数组中空值的方法介绍
这篇文章主要介绍了PHP删除数组中空值的方法介绍,需要的朋友可以参考下 说来惭愧,以前在去掉数组的空值是都是强写foreach或者while的,利用这两个语法结构来删除数组中的空元素,简单代码如下: ...
- [No000010]Ruby 中一些百分号(%)的用法小结
#Ruby 中一些百分号(%)的用法小结 #这篇文章主要介绍了Ruby 中一些百分号(%)的用法小结,需要的朋友可以参考下 what_frank_said = "Hello!"#% ...
- 如何在Ruby中编写微服务?
[编者按]本文作者为 Pierpaolo Frasa,文章通过详细的案例,介绍了在Ruby中编写微服务时所需注意的方方面面.系国内 ITOM 管理平台 OneAPM 编译呈现. 最近,大家都认为应当采 ...
- ArrayList相关方法介绍及源码分析
目录 ArrayList简介: ArrayList 相关方法介绍 代码表示 相关方法源码分析 ArrayList简介: java.util.ArrayList 是我们最常用的一个类,ArrayList ...
- 前端开发:Javascript中的数组,常用方法解析
前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...
- JavaScript jQuery 中定义数组与操作及jquery数组操作
首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...
- lua解析脚本过程中的关键数据结构介绍
在这一篇文章中我先来介绍一下lua解析一个脚本文件时要用到的一些关键的数据结构,为将来的一系列代码分析打下一个良好的基础.在整个过程中,比较重要的几个源码文件分别是:llex.h,lparse.h.l ...
- [翻译]理解Ruby中的blocks,Procs和lambda
原文出处:Understanding Ruby Blocks, Procs and Lambdas blocks,Procs和lambda(在编程领域被称为闭包)是Ruby中很强大的特性,也是最容易引 ...
- 理解Ruby中的作用域
作用域对于Ruby以及其它编程语言都是一个需要理解的至关重要的基础知识.在我刚开始学习ruby的时候遇到很多诸如变量未定义.变量没有正确赋值之类的问题,归根结底是因为自己对于ruby作用域的了解不够, ...
随机推荐
- python函数-参数
python函数-参数 实验室 # 演示形参是可变类型 def register(name, hobby, hobby_list=[]): hobby_list.append(hobby) print ...
- php-fpm的pool、php-fpm慢执行日志、open_basedir、php-fpm进程管理
6月13日任务 12.21 php-fpm的pool12.22 php-fpm慢执行日志12.23 open_basedir12.24 php-fpm进程管理 12.21 php-fpm的pool p ...
- phpStudy搭建PHP服务器
目录 1 下载 2 安装 3 新建站点 4 配置host phpStudy是一个PHP调试环境的程序集成包. 该程序包集成最新的 Apache+Nginx+LightTPD PHP MySQL+php ...
- 前端js,如何在结构化与性能中做取舍。
js发展中的问题 随着前端web技术的发展,js要解决的问题也变得越来越多,越来越复杂. 解决更复杂的问题,需要更好的结构. 解决更复杂的问题,也需要更好的性能. 结构的优化在一定程度上会牺牲性能,同 ...
- shell 读取文件第几列
读取文件的第2列和第4列: cat filename.txt | awk '{ print $2 $4 }' 求文件file1.txt的第二列 和 file2.txt(单列文件)的交集: cat fi ...
- 在mac上如何用safari浏览器调试ios手机的移动端页面
第一步 打开iphone手机的开发者模式,流程是:[设置]->[Safari]->[高级]->开启[Web检查器] 第二步 打开Mac上Safari的开发者模式,流程是[Safari ...
- Spring Data-Spring整合Hibernate基于JPA规范
JPA:由 Sun 公司提供了一对对于持久层操作的标准(接口+文档) Hibernate:是 Gavin King 开发的一套对于持久层操作的自动的 ORM 框架. Hibernate JPA:是在 ...
- 200G网盘资源分享
今日偶得大量网盘资源,遂写一博文以分享! 来源:HACK学习呀,微信公众号:HACK学习呀 文件名 链接 提取密码 2015cracer入侵入门到精通视频教程 点我查看 trf3 一笔√带过入侵教程 ...
- Docker--Docker初体验
echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 先来接 ...
- JS中&&和||的理解
运算符可以从三个不同的层次进行理解. 第一层理解 当操作数都是布尔值时,"&&"对两个值执行布尔与(AND)操作. 复制代码代码如下: x==0 && ...