庇护祝福的分享

Be worthy

Ruby_array类常用方法

取值

索引取值

    arr  = [1, 2, 3, 4, 5]
    arr[0]  = 1
    arr.at(0) = 1

take & drop

    arr.take 3              #=>[1, 2, 3]
    arr.drop 3              #=>[4, 5]

插值

pop, push && shift , unshift

    arr = [1, 2, 3, 4]
    arr.push(5)              #=> [1, 2, 3, 4, 5]
    arr << 6                  #=> [1, 2, 3, 4, 5, 6]
    arr.pop                    #=> 6
    arr                          #=> [1, 2, 3, 4, 5]
    arr.unshift 0             #=>[0, 1, 2, 3, 4, 5]
    arr.shift                   #=> 0 
    arr                           #=>[1, 2, 3, 4, 5]
    arr.push [1, 2, 3]      #=>[1, 2, 3, 4, 5, [1, 2, 3] ]

insert

    arr = [1, 2, 3, 4]
    arr.insert(3 , 5)        #=>[1, 2, 3, 5, 4]              #第一个参是索引值

删除

delete

    arr = [1, 2, 2, 3, 4]
    arr.delete 2            #=>2
    arr                         #=>[1, 3, 4]                       #delete根据实际值删除全部
    arr.delete_at 2        #=>4 
    arr                         #=>[1, 3]                           #delete_at根据索引值删除

compact(去nil)

    arr  = [1, nil, 2 , nil, 3 , 4]
    arr.compact             #=>[1, 2, 3, 4]
    arr                           #=>[1, nil, 2 , nil, 3 , 4]
    arr.compact!            #=>[1, 2, 3, 4]
    arr                           #=>[1, 2, 3, 4]
                                  #compact: v, adj 紧凑的,使紧凑

uniq(去重)

    arr = [2, 5, 6, 556, 6, 6, 8, 9, 0, 123, 556]
    arr.uniq                  #=> [2, 5, 6, 556, 8, 9, 0, 123]
    arr.uniq!

迭代

each

    arr = [1, 2, 3, 4]
    arr.each {|a| puts a+1}               执行结果:1234 #=>[1, 2, 3, 4]   #返回原数组

map&map!

    arr.map {|a| a+1}                            #=>[2, 3, 4, 5]           # 返回block处理过后的结果
    arr.map! {|a| a+1}                          #=>[2, 3, 4, 5]         # 返回block处理过后的结果,并改变原数组

选择

不改变原数组

    arr = [1, 2, 3, 4, 5, 6]
    arr.select { |a| a > 3 }     #=> [4, 5, 6]
    arr.reject { |a| a < 3 }     #=> [3, 4, 5, 6]                     #可以理解为!select
    arr.drop_while { |a| a < 4 } #=> [4, 5, 6]
    arr                          #=> [1, 2, 3, 4, 5, 6]       

修改原数组

    arr = [1, 2, 3, 4, 5, 6]
    arr.delete_if { |a| a < 4 } #=> [4, 5, 6]
    arr                         #=> [4, 5, 6]

    arr = [1, 2, 3, 4, 5, 6]
    arr.keep_if { |a| a < 4 } #=> [1, 2, 3]
    arr                       #=> [1, 2, 3]

连接

判断

存在性

    arr = [1, 2, 3, 4, 5, 6]
    arr.include? 1                 #=>true

为空?

    arr.empty?                     #=>false

相等

    a=[1, 2]
    b=[1, 2]
    a.eql? b                          #=>true 
    a.equal? b                       #=>false    equal?只有当二者是同一个对象的时候才会为true