Ruby的数组

Ruby的数组


8. 排序

例12

?
array = ["73", "2", "5", "1999", "53"]
#按照默认的字符串排序
p array.sort

#转化为数值后排序
p array.sort{|x,y| x.to_i <=> y.to_i}

#输出结果
#["1999", "2", "5", "53", "73"]
#["2", "5", "53", "73", "1999"]
9. 选择

将代码块中的返回值为真的元素取出,组成新的数组并返回

例:students.select{|person| person.grade == 3}


数组的创建
arr = Array.new num #创建num个元素的数组,所有数组元素为nil
arr = Array.new num, elem #创建num个元素的数组,所有数组元素为elem
arr = Array(m..n) #创建m..n元素为m到n的数组(包括n) m...n不包括n
arr = (Array)[elem1, elem2,....elemn] #Array可选
arr = Array.[](elem1,...........)
arr = %w[string1, string2,....stringn]
数组的修改
插入
arr.insert pos, elem
删除
arr.delete elem
arr.delete pos
修改
arr[pos]= new_elem
arr[start..end]=/arr[start...end]=
arr[start, length]=

arr.push
arr.pop
队列
arr.shift
arr.unshift
新增
arr1 + arr2 #只能是两个数组加
arr1.concat arr2
arr1 << elem/arr2
集合运算
arr1 & arr2
arr1 | arr2
arr1 - arr2
压缩
arr.compact #去除所有nil,注意不能递归,多维数组之中的nil是不能用这个去掉
arr.uniq(!) #压缩所有重复元素
转换
arr.to_s
arr.join delimiter
arr.sort(!)
arr.reverse(!)
arr.flatten #将多维数组编程一维
arr.transpose #将记录转换为列
清空
arr.clear

检索数组
arr.index elem #返回elem的位置
arr[pos] #返回pos位置的元素
arr.at pos #同上

判断
arr.include? elem
arr.empty?

你可能感兴趣的:(arr)