ruby中的数组相关方法介绍
2024-08-31 07:23:57
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
最新文章
- IT路上爹爹装装遇到的坑
- Android笔记——eclipse快捷键
- Xcode免证书调试
- MS-MPI 的使用
- 学习indy组件之一idhttp的使用方法
- 转:Python获取随机数(中文)
- SQL Server 之 解锁
- bzoj1188
- 201521123057 《Java程序设计》第9周学习总结
- C++雾中风景3:const用法的小结
- 文件操作(File类等)API摘要
- LeetCode子域名访问计数-Python3.7<;五>;
- AC自动机-HDU2896-模板题
- wx.setStorageSync(KEY,DATA)
- Flex 常用布局
- intellij idea 如何一键清除所有断点
- Cocos2d-x执行时错误:Cocos2d: Get data from file(xxx.xxx) failed!
- 【Android】Android实现Handler异步详解
- ASP.NET MVC 5 开发环境配置
- mongodb 3.0下载安装、配置及mongodb最新特性、基本命令教程详细介绍