=begin
数组,是有序的,基于整数引索的任意对象的集合;索引起始为0 -1为最后一个元素
=end
#数组的用法----如何获取数组中的元素
arr = [1, 2, 3, 4, 5, 6]
arr[2] #输出第三个数组中的元素:3
arr[100] #无法输出超出数组长度的元素:nil
arr[-3] #输出倒数组中数倒数第三的元素:4
arr[2,3] #输出从第三个元素开始三个长度的元素:[3,4,5]
arr[1 .. 4] #输出包括第二个元素到第五个之间的所有元素:[2,3,4,5]
arr[1 .. -3] #输出包括正数第二个元素到到倒数第三个元素之间的所有元素:[2,3,4]
arr.at(0) #输出数组中第一个元素:1
arr.fetch(1) #输出数组中第二个元素:2
arr.take(3) #输出数组中前三个元素:[1,2,3]
arr.drop(3) #丢弃数组中前三个元素后剩下的元素,不会修改数组本身:[4,5,6]
#数组的用法----获取数组的信息
arr.length #输出数组中元素的长度(个数):6
arr.count #输出数组中元素的个数(长度):6
arr.empty? #判断数组是否为空:false
arr.include?(6) #判断该对象是否为数组中的元素:true
#修改数组----向数组中增加元素
arr = [1, 2, 3, 4]
arr.push(5) #向数组末尾插入一个元素:[1,2,3,4,5]
arr << 6 #同上,向数组末尾插入一个元素:[1,2,3,4,5,6]
arr.unshift(0) #在数组的起始位置插入一个元素:[0,1,2,3,4,5,6]
arr.insert(3, "heiheihei") #在数组第三个元素后面插入一个元素,使之成为第四个元素,新元素索引位置为3:[0,1,2,"heiheihei",3,4,5,6]
arr[8] = 7 #在索引位置为8的位置插入(修改)一个元素:[0,1,2,"heiheihei",3,4,5,6,7]
#修改数组----删减数组中的元素
arr = [1, 2, 3, 4, 5, 6]
arr.pop #删除数组的最后一个元素:[1,2,3,4,5]
arr.shift #删除数组中的第一个元素:[2,3,4,5]
arr.delete_at(2) #删除数组中索引位置为2的元素,:[2,3,5]
arr.delete(2) #删除数组中的元素2:[3,5]
arr = [1, 1, 2, 2, 3, 3, nil]
arr.uniq #删除数组中重复的元素并输出,不会修改数组本身:[1,2,3,nil]
arr.compact #删除数组中显示出的nil元素并输出,不会修改数组本身:[1,1,2,2,3,3]
#数组的用法----遍历数组
arr = [1, 2, 3, 4, 5, 6]
arr.each{ |x| puts x } #按顺序遍历数组中的元素(方法一): 1\n2\n3\n4\n5\n6\n
arr.each do |x|
puts x
end #按顺序遍历数组中的元素(方法二):1\n2\n3\n4\n5\n6\n
arr.reverse_each { |x| puts x } #逆序遍历数组中的元素:6\n5\n4\n3\n2\n1\n
arr.map { |x| x * 2 } #接受一个块,对特定的元素进行单独的操作,需要赋值给一个新的变量,不会修改数组本身:[2,4,6,8,10,12]
arr.select { |x| x > 4 } #在数组中筛选出值大于4的的元素,需要赋值给一个新的变量,不会修改数组本身:[5,6]
arr.reject { |x| x > 4} #在数组中筛掉值大于4的元素,需要赋值给一个新的变量,不会修改数组本身:[1,2,3,4]
arr = [1, 2, 3, 4, 3, 2, 1]
arr.drop_while { |x| x < 3 } #删除最先一次数组中满足条件的的元素,不会修改数组本身:[3,4,3,2,1]
arr.delete_if { |x| x < 3 } #删除数组中所有满足条件的元素:[3,4,3]
arr = [1, 2, 3, 4, 3, 2, 1]
arr.keep_if { |x| x > 3} #只输出满足条件的元素:[4]
文章标题:Ruby-数组
网页路径:
http://jkwzsj.com/article/pjgico.html