arr = [1,2,3,4,5,6,7]
at: 访问指定数组元素
fetch: 用于为数组范围内找不到值提供一个默认的错误值
arr.at[0] = arr[0]
arr.fetch(100, "err") //会返回err
take: 返回数组的前n个元素
drop: 返回数组的第n个元素之后的所有元素
添加
<< 或者push: 向数组的末尾添加元素
unshift: 向数组的开头添加一个新的元素
insert: 向数组的任何位置添加一个新元素
arr.insert(1, 100) => [1, 100, 2, 3, 4, 5, 6, 7]
删除
pop: 从数组的末尾删除元素
shift: 从数组的起始处删除元素, 返回删除的元素
delete_at: 删除数组指定位置的元素
delete 从数组中的删除值为该元素的所有项,返回删除的元素
uniq 从数组中删除重复的元素,它返回删除重复元素后剩余的数组
compact: 移除数组中的所有nil元素, 返回的是self的副本
compact! 从数组中移除所有nil元素
delete_if{ block } 从数组中删除满足条件的所有元素
slice!(begin,n) 指定起始位置begin,删除长度为n的元素(可选)
arr = [1,2,3,4,5,6,7,8]
arr.pop // arr => [1,2,3,4,5,6,7]
arr.shift // arr => [2,3,4,5,6,7]
arr << 2 << 2 << 3 // arr => [2,3,4,5,6,7,2,2,3]
arr.delete_at(2) // arr => [2,3,5,6,7,2,2,3]
arr.delete(2) // arr => [3,5,6,7,3]
arr.uniq // 返回: [3,5,6,7], 原数组元素不发生改变
arr << nil
arr.compact // 返回值: [3,5,6,7,3] 原数组元素不发生改变 [3,5,6,7,3,nil]
arr.compact! // arr => [3,5,6,7,3]
arr.delete_if{|a| a> 6} // arr => [3, 5, 6, 3]
arr.slice!(0) // arr => [5,6,3] 未指定长度
arr.slice!(0, 2) // arr=> [3] 已指定长度
遍历
each{block}:self中的每一个元素调用一次block,传递该元素作为参数
map{block}:创建一个新数组,包含block返回的值
arr = [1,2,3,4,5]
arr.each{|a| a+2} // arr = [1,2,3,4,5]
arr.map{|a| a+2} // arr = [1,2,3,4,5]
arr.map!{|a| a+2} // arr = [3,4,5,6,7]
选择元素
select{block}:查找数组中满足block条件的元素
reject{block} :返回一个新的数组,当block为false时的数组项
arr = [1,2,3,4,5,6,7]
arr.select{|x| x > 5} //返回[6,7]
arr.reject{|x| x > 5} //返回[1,2,3,4,5]
arr[0,3] // 从index=0开始的元素,截取取长度为3的元素
arr[0..12] //获取index为0 到index=12的元素
&:获取两个数组中相同的元素
assoc:获取二维数组首元素匹配的数组
s1 = [ "colors", "red", "blue", "green" ]
s2 = [ "letters", "a", "b", "c" ]
s3 = "foo"
a = [ s1, s2, s3 ]
a.assoc("letters") #=> [ "letters", "a", "b", "c" ]
a.assoc("foo") #=> nil
a.assoc("a") #=> nil
flatten多维数组转一维数组
reverse数组的反转
["a","b", "c"].reverse => ["c", "b", "a"]
arr = [1,2,3,4,5,6,7,8,9]
arr.sample //=>6
arr.sample(3) //=> [7,2,1]
arr.shuffle // => [7, 4, 5, 1, 3, 2, 6, 8, 9]
sample:从一个数组随机去n个元素
shuffle:随机打乱数组元素
排序
sort: 数组排序
transpose: 二位数组行列倒转
arr = [1,2,3,4,5,6]
arr.sort #升序排列
arr.sort{|x,y| y <=> x} //降序排列
a = [[1,2],[3,4],[5,6]]
a.transpose // [[1,3,5],[2,4,6]]
网友评论