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作用域的了解不够, ...
随机推荐
- Spring 之初识IOC和DI
下载Spring jar包 Spring官网 下载地址 Sping核心jar包 IOC简介 IOC:控制反转,指以前程序自己创建对象,现在将创建对象的控制权交给了第三方(Spring)了 IoC底层实 ...
- AI本质就是“暴力计算”?看华为云如何应对算力挑战
随着AI人工智能技术的飞速发展,相关的AI应用场景已经拓宽至各行各业.你可能想象不到的是,现在大家手上的智能手机的运算能力,甚至比美国航空航天局1969年登月计划中最先进计算机还高出几百上千万倍乃至更 ...
- 转:mysql 安装失败 start service执行不下去
简单说一下自己安装mysql的经历坑点,新手应该都会遇到.新买了一个电脑,第一次安装的情况:在网上下载好几个不同的mysql,安装都在最后一步执行的时候,执行不下去,最后打开客户端,就是闪一下就消失了 ...
- shell脚本持续更改
1.用shell查看磁盘是否大于80%并发送邮箱告警. 分析如何查看磁盘占用: # df -h | grep /dev/vda1 | awk '{print $5}' |cut -d "%& ...
- DataFrame 链式赋值
在运行以下Python代码时,Pandas抛出SettingWithCopyWarning警告: row_data = df_pred.loc[key] row_data['col'] = new_v ...
- Spring Boot 整合Spring Data以及rabbitmq,thymeleaf,向qq邮箱发送信息
首先得将自己的qq开启qq邮箱的POP3/SMTP服务 说明: p,e为路由key. 用户系统完成登录的时候,将{手机号-时间-IP}保存到队列Phone-queue中,msg-sys系统获得消息打印 ...
- 如何在ASP.NET Core 中快速构建PDF文档
比如我们需要ASP.NET Core 中需要通过PDF来进行某些简单的报表开发,随着这并不难,但还是会手忙脚乱的去搜索一些资料,那么恭喜您,这篇帖子会帮助到您,我们就不会再去浪费一些宝贵的时间. 在本 ...
- hdu2199,double二分
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2199 题意:给一个Y,求满足8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y的 ...
- 洛谷 题解 P2312 【解方程】
Problem P2312 [解方程] >>> record 用时: 1166ms 空间: 780KB(0.76MB) 代码长度: 2.95KB 提交记录: R9909587 > ...
- 【关注图像采集视频传输】之 Cy3014 usb3.0 FIFO接口
CYUSB3014延续了CY7C68013A最吸引人的地方,那就是实现高速数据传输的Slave FIFO接口,应用这种模式,据说数据传输率可以达到320MB/s. 同USB2.0的芯片CY7C6801 ...