美文网首页
ruby 数组

ruby 数组

作者: biubiudog | 来源:发表于2019-05-08 16:29 被阅读0次

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]]

相关文章

  • ruby 数组操作

    Ruby 数组(Array) Ruby 数组是任何对象的有序整数索引集合。数组中的每个元素都与一个索引相关,并可通...

  • Ruby基础学习笔记

    目录 Ruby的基本概念Ruby的控制语句Ruby的循环Ruby的数组与散列 Ruby的基本概念 运行Ruby的方...

  • Ruby数组

    Ruby数组字面量通过[]中以逗号分隔定义,且支持range定义。 数组通过[]索引访问 通过赋值操作插入、删除、...

  • Ruby 数组

    数组 数组的循环 Ruby 中提供了 each 方法. 语法如下: each 后面在 do ~ end 之间的部...

  • ruby 数组

    arr = [1,2,3,4,5,6,7]at: 访问指定数组元素 fetch: 用于为数组范围内找不到值提供一...

  • ruby 数据类型

    1. Ruby 字符串(String) 2. Ruby 数组 3. Ruby 哈希 哈希的内置方法 4. Ruby...

  • Ruby常用方法(3)

    Ruby对象数组按属性排序1 .Rails里,我们可以用sort_by方法对一个Ruby对象数组按照某个属性进行排...

  • ruby 数组排序

    一维数组排序arr = [1,3,4,5,6]arr.sort #默认排序arr.sort{|x,y|x<=>y}...

  • Ruby 数组(Array)

    Ruby 数组是任何对象的有序整数索引集合。数组中的每个元素都与一个索引相关,并可通过索引进行获取。数组的索引从 ...

  • ruby变量

    ruby中多重复值 a, b, c = 1, 2, 3 变量前加上*,表示Ruby会将未分配的值封装为数组赋值给...

网友评论

      本文标题:ruby 数组

      本文链接:https://www.haomeiwen.com/subject/yleyoqtx.html