浏览 2900 次
锁定老帖子 主题:ruby常用方法小記 --Array篇
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-08-21
Class Array < Object
實例方法 & arr & other_array -> an_array 交集 <=> 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 collect! arr.collect!{|obj|block}-->arr 對arr的每個元素調用block,并用block的返回值去替換原元素.參見 a = %w(a b c d ) a.collect!{|x| x + "!"} a compact! arr.compact! -> arr 或 nil 刪除arr中所有的nil元素.如果沒有改變內容,則返回nil a = ["a", nil, "b", nil, "c", "d"] a.compact a a.compact! a each_index arr.each_index{|index|block} -> arr 除了傳遞到是元素的下表而不是元素本身之外,與Array#each相同 flatten arr.flatten->an_array 返回一個新數組,該數組由原數組元素(遞歸)平鋪而成. a = [1, 2, 3, 4, 5, 6] t = [4, 5, 7, 9] b = [a, t, 6,7,8] b.flatten include? arr.include?(obj)->true或false 如果所給對象出現在數組中(也就是說如果數組的任何對象 == obj),則返回true,否則返回false. a = %w(a, b, c) a.include("b") -> true a.include("g") -> false join arr.join(sqparator=$,)->str 將數組中的每個元素連接成一個字符串,使用分隔符來分割每個元素,并返回該字符串. %w(a b c).join => "abc" %w(a b c).join("囧") => "a囧b囧c" pack 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") push arr.push(<obj>*)->arr 將給定參數添加到數組中. a = %w(a b c) a.push %w(d e f) => ["a", "b", "c", ["d", "e", "f"]] reject! arr.reject!{block}item->arr或nil 等價于Array#delete_if,但如果沒做任何改變,則返回nil. delete_if arr.delete_if{|item|block} -> arr 刪除數組arr中那些能使block返回true的元素 a = %w(a b c) a.delete_if{|x| x >= "b"} reverse arr.reverse -> an_array 反序arr的元素,并返回新數組 slice 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"] uniq arr.uniq->an_array 刪除arr中的重復元素,并返回結果數組,重復元素是通過使用eql?和hash比較檢測出來的. a = %w(a a b b c) a.uniq => ["a", "b", "c"] 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |