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作用域的了解不够, ...
随机推荐
- SpringBoot 使用IDEA 配置热部署
在开发中稍微更改一点内容就要重启,很麻烦.这个时候使用Spring Boot的热部署就能解决你的问题. 上图: 1,在pom.xml文件中添加依赖: <dependency> <gr ...
- PTA 1139 1138 1137 1136
PAT 1139 1138 1137 1136 一个月不写题,有点生疏..脑子跟不上手速,还可以啦,反正今天很开心. PAT 1139 First Contact 18/30 找个时间再修bug 23 ...
- 【CKB.DEV 茶话会】如何在 CKB 上实现用户自定义 Token
本贴内容主要来自于 CKB.DEV 茶话会第一期,本期主题是:如何在 CKB 上实现 UDT,分享人是:Cipher 王博. 茶话会现场视频: https://v.qq.com/x/page/x303 ...
- HTML+CSS的小实例
通过一个月以来对HTML5+CSS的学习.这篇随笔给大家来做一个简单的网页中常见的导航栏. 这些都称之为网页中的导航栏. 我简单的做了一个某宝和58同城的导航栏,供大家学习参考. 一.58同城导航栏: ...
- 【开发者portal在线开发插件系列四】数组 及 可变长度数组
基础篇 基础场景见上面两个帖子,这里单独说明数组和可变长度数组的用法. 话不多说,开始今天的演(表)示(演) Profile和插件开发 添加一个string类型的属性: 在插件里添加一条数据上报消息: ...
- 转:FileSync plugin for Eclipse 安装注意事项 Eclipse文件同步插件
习惯了使用MyEclipse,各种插件不用自己安装,觉得开发起来很方便,现在大家都用Eclipse了,还有不用Eclipse用更高级的,IT当然开发大型项目没人用UltraEdit吧,虽然是一个不错的 ...
- png兼容IE6的方法
1.通过CSS滤镜使背景图的PNG对IE6进行兼容 定义一个样式,给某个div应用这个样式后,div的透明png背景图片自动透明了. <style> body{background: li ...
- 阿里巴巴主导的“华山版《Java 开发手册》”简介
1."83行代码计划"项目介绍(转自github): 2018年9月22日,在2018杭州云栖大会上,召开<码出高效:Java 开发手册>新书发布会,并宣布将图书所有收 ...
- 揭秘 iOS App Extension 开发 —— Today 篇
转自:http://www.cocoachina.com/ios/20160619/16760.html 本文授权转载,作者:Cyandev(简书) 从 iOS 8 开始,苹果引入了全新的 App E ...
- dubbo 发布 RPC 服务
Dubbo 发布 RPC 服务 建立服务提供者项目 pom.xml <?xml version="1.0" encoding="UTF-8"?> & ...