[size=large][b]Class Array < Object[/b][/size]
實例方法
[b]&[/b]
交集
[b]<=>[/b]
比較---根據數組小于,等于或大于other_array,分別返回-1,0或1。每個數組中的每個對象都被比較.如果任何值都不相等,那么這次比較多結果將作為返回值返回.如果所有值都相等,則返回值由數組長度的比較結果確定.因此,根據Array#<=>當且僅當兩個數組長度相同且對應元素分別相等時才認為它們相等
[b]collect![/b]
對arr的每個元素調用block,并用block的返回值去替換原元素.參見
[b]compact![/b]
刪除arr中所有的nil元素.如果沒有改變內容,則返回nil
[b]each_index[/b]
除了傳遞到是元素的下表而不是元素本身之外,與Array#each相同
[b]flatten[/b]
返回一個新數組,該數組由原數組元素(遞歸)平鋪而成.
[b]include?[/b]
如果所給對象出現在數組中(也就是說如果數組的任何對象 == obj),則返回true,否則返回false.
[b]join[/b]
將數組中的每個元素連接成一個字符串,使用分隔符來分割每個元素,并返回該字符串.
[b]pack[/b]
根據模板template中的指令將arr的內容打包成二進制字節序.指令A,a和Z后跟一個計數符,該計數符說明了生成字段的寬度.其余的指令也可以后跟一個計數符以表明被轉換的數組元素的個數.如果計數符是星號(*),則剩余的所有數組元素將被轉換."sSiIlL"指令中的任何一個都可后跟一個下劃線(_)以使用底層平臺的本地大小來表示指定的類型;否則使用平臺無關的大小.模板字符串的空格將被忽略.以#開頭到下一個新行或字符串結尾的注釋也被忽略.
[b]push[/b]
將給定參數添加到數組中.
[b]reject![/b]
等價于Array#delete_if,但如果沒做任何改變,則返回nil.
[b]delete_if[/b]
刪除數組arr中那些能使block返回true的元素
[b]reverse[/b]
反序arr的元素,并返回新數組
[b]slice[/b]
[b]uniq[/b]
刪除arr中的重復元素,并返回結果數組,重復元素是通過使用eql?和hash比較檢測出來的.
實例方法
[b]&[/b]
arr & other_array -> an_array
交集
[b]<=>[/b]
arr<=>other_array-> -1,0,1
比較---根據數組小于,等于或大于other_array,分別返回-1,0或1。每個數組中的每個對象都被比較.如果任何值都不相等,那么這次比較多結果將作為返回值返回.如果所有值都相等,則返回值由數組長度的比較結果確定.因此,根據Array#<=>當且僅當兩個數組長度相同且對應元素分別相等時才認為它們相等
["a", "a", "c"] <=> ["a", "b", "c"] -> -1
[1, 2, 3, 4, 5, 6] <=> [1, 2] -> 1
[b]collect![/b]
arr.collect!{|obj|block}-->arr
對arr的每個元素調用block,并用block的返回值去替換原元素.參見
a = %w(a b c d )
a.collect!{|x| x + "!"}
a
[b]compact![/b]
arr.compact! -> arr 或 nil
刪除arr中所有的nil元素.如果沒有改變內容,則返回nil
a = ["a", nil, "b", nil, "c", "d"]
a.compact
a
a.compact!
a
[b]each_index[/b]
arr.each_index{|index|block} -> arr
除了傳遞到是元素的下表而不是元素本身之外,與Array#each相同
[b]flatten[/b]
arr.flatten->an_array
返回一個新數組,該數組由原數組元素(遞歸)平鋪而成.
a = [1, 2, 3, 4, 5, 6]
t = [4, 5, 7, 9]
b = [a, t, 6,7,8]
b.flatten
[b]include?[/b]
arr.include?(obj)->true或false
如果所給對象出現在數組中(也就是說如果數組的任何對象 == obj),則返回true,否則返回false.
a = %w(a, b, c)
a.include("b") -> true
a.include("g") -> false
[b]join[/b]
arr.join(sqparator=$,)->str
將數組中的每個元素連接成一個字符串,使用分隔符來分割每個元素,并返回該字符串.
%w(a b c).join
=> "abc"
%w(a b c).join("囧")
=> "a囧b囧c"
[b]pack[/b]
arr.pack(template)->binary_string
根據模板template中的指令將arr的內容打包成二進制字節序.指令A,a和Z后跟一個計數符,該計數符說明了生成字段的寬度.其余的指令也可以后跟一個計數符以表明被轉換的數組元素的個數.如果計數符是星號(*),則剩余的所有數組元素將被轉換."sSiIlL"指令中的任何一個都可后跟一個下劃線(_)以使用底層平臺的本地大小來表示指定的類型;否則使用平臺無關的大小.模板字符串的空格將被忽略.以#開頭到下一個新行或字符串結尾的注釋也被忽略.
a = %w(a b c)
n = [65, 66, 67]
a.pack("A3A3A3")
=> "a b c "
a.pack("a3a3a3")
=> "a\000\000b\000\000c\000\000"
n.pack("ccc")
[b]push[/b]
arr.push(<obj>*)->arr
將給定參數添加到數組中.
a = %w(a b c)
a.push %w(d e f)
=> ["a", "b", "c", ["d", "e", "f"]]
[b]reject![/b]
arr.reject!{block}item->arr或nil
等價于Array#delete_if,但如果沒做任何改變,則返回nil.
[b]delete_if[/b]
arr.delete_if{|item|block} -> arr
刪除數組arr中那些能使block返回true的元素
a = %w(a b c)
a.delete_if{|x| x >= "b"}
[b]reverse[/b]
arr.reverse -> an_array
反序arr的元素,并返回新數組
[b]slice[/b]
arr.slice(int)->obj
arr.slice(start,length)->an_array
arr.slice(range)->an_array
a = %w(a b c d e f)
a.slice(2)
=>"c"
a.slice(1,2)
=> ["b", "c"]
a.slice(1..3)
=>["b","c","d"]
[b]uniq[/b]
arr.uniq->an_array
刪除arr中的重復元素,并返回結果數組,重復元素是通過使用eql?和hash比較檢測出來的.
a = %w(a a b b c)
a.uniq
=> ["a", "b", "c"]