ruby數組總結

1. &

[ 1, 1, 3, 5 ] & [ 1, 2, 3 ] # => [1, 3]

取兩個數組中都有的元素,但只取一個,不重複取。

2. *

[ 1, 2, 3 ] * 3 # => [1, 2, 3, 1, 2, 3, 1, 2, 3]

如果*號後面跟的是數字n,將原先數組中的所有元素重複n次,串聯起來。相當於普通數字的乘法操作。

[ 1, 2, 3 ] * "--" # => "1--2--3"

如果*號後面跟的是字符串,也將返回字符串。

3. +

[ 1, 2, 3 ] + [1, 4, 5 ] # => [1, 2, 3, 1, 4, 5]

簡單的將兩個數組連接在一起,不刪除重複元素。

4. -

[ 1, 1, 2, 2, 3, 3, 4, 5 ] - [ 1, 2, 4 ]
# => [3, 3, 5]

從第一個數組中刪除所有出現在第二給數組中的元素。

5. <<

[ 1, 2 ] << "c" << "d" << [ 3, 4 ] << [3, 4]
# => [1, 2, "c", "d", [3, 4], [3, 4]]

在數組末尾添加新元素,也不管重複不重複。

6. ==

[ "a", "c" ] == [ "a", "c", 7 ] # => false
[ "a", "c", 7 ] == [ "a", "c", 7 ] # => true
[ "a", "c", 7 ] == [ "a", "d", "f" ] # => false

判斷兩個數組是否相等——數組相等的前提是,數組所有元素相等,數組大小也當然相等。

7. |

[ "a", "b", "c" ] | [ "c", "d", "a" ]
 # => ["a", "b", "c", "d"]

取兩個數組中所有元素組成的集合,刪除重複元素。

8. at

a = [ "a", "b", "c", "d", "e" ]
a.at(0) # => "a"
a.at(-1) # => "e"
a.at(5) # => nil

取回某個索引中的元素,倒數第一個索引是-1,第二個是-2。

9. clear

a = [ "a", "b", "c", "d", "e" ]
a.clear # => []

刪除數組中的所有元素

10. collect!

a = [ "a", "b", "c", "d" ]
a.collect! {|x| x + "$" } # => ["a$", "b$", "c$", "d$"]
a # => ["a$", "b$", "c$", "d$"]

對數組中的每一個元素進行遍歷,block中對元素的操作將改變元素的值。

11. compact

[ "a", nil, "b", nil, "c", nil ].compact # => ["a", "b", "c"]

刪除數組中所有值爲nil的元素,也即壓縮數組。

12. concat

[ "a", "b" ].concat( ["c", "d"] ) # => ["a", "b", "c", "d"]

將第二個數組中的元素添加在第一個數組末尾,組成新數組。

13. count

[1, 2, 3, 4].count(3) # => 1
[1, 2, 3,3, 4].count(3) # => 2
[1, 2, 3, 4].count {|obj| obj > 2 } # => 2

計算數組中等於某個值的元素有幾個。

14. delete

a = [ "a", "b", "b", "b", "c" ]
a.delete("b") # => "b"
a # => ["a", "c"]
a.delete("z") # => nil
a.delete("z") { "not found" } # => "not found"

刪除數組中值爲某個給定值的元素。

15. each

a = [ "a", "b", "c" ]
a.each {|x| print x, " -- " }
result :
a -- b -- c --

遍歷數組,打印元素值。

16. each_index

a = [ "a", "b", "c" ]
a.each_index {|x| print x, " -- " }
result :
0 -- 1 -- 2 --

遍歷數組,打印索引。

17. empty?

[].empty? # => true
[ 1, 2, 3 ].empty? # => false

判斷數組是否爲空。

18. join

[ "a", "b", "c" ].join # => "abc"
[ "a", "b", "c" ].join("-") # => "a-b-c"

將數組中的元素連接成字符串。如果給定參數,則在每個元素直接加入該參數。

19. last

[ "w", "x", "y", "z" ].last # => "z"
[ "w", "x", "y", "z" ].last(1) # => ["z"]
[ "w", "x", "y", "z" ].last(3) # => ["x", "y", "z"]

如果不給定參數,取最後一個元素。如果給定參數n,取最後n個參數組成數組。

20. length

[ 1, nil, 3, nil, 5 ].length # => 5

長度。空元素nil也算元素,計算在長度範圍內。

21. pop

a = %w{ f r a b j o u s }
a.pop # => "s"
a # => ["f", "r", "a", "b", "j", "o", "u"]
a.pop(3) # => ["j", "o", "u"]
a # => ["f", "r", "a", "b"]

返回刪除了最後n個元素後的數組。

22. push

a = [ "a", "b", "c" ]
a.push("d", "e", "f") # => ["a", "b", "c", "d", "e", "f"]

在數組末尾插入元素。

23. replace

a = [ "a", "b", "c", "d", "e" ]
a.replace([ "x", "y", "z" ]) # => ["x", "y", "z"]
a # => ["x", "y", "z"]

用新數組替換舊數組。

24. reverse

[ "a", "b", "c" ].reverse # => ["c", "b", "a"]
[ 1 ].reverse # => [1]

反轉數組。

25. shift

args = [ "-m", "-q", "-v", "filename" ]
args.shift # => "-m"
args.shift(2) # => ["-q", "-v"]
args # => ["filename"]

從數組頭部刪除n個元素,並將他們返回。若刪除的是一個,則返回字符串。若刪除兩個以上元素,則返回這n個組成的新數組。原數組被改變。

26. unshift

a = [ "b", "c", "d" ]
a.unshift("a") # => ["a", "b", "c", "d"]
a.unshift(1, 2) # => [1, 2, "a", "b", "c", "d"]

在頭部加入元素,原數組元素往後移。

27. shuffle

[ 1, 2, 3, 4, 5, 1 ].shuffle # => [5, 1, 3, 4, 1, 2]

將原數組隨機打亂。

28. sort

a = [ "d", "a", "e", "c", "b" ]
a.sort! # => ["a", "b", "c", "d", "e"]
a # => ["a", "b", "c", "d", "e"]

返回排序好的數組。

29. values_at

a = %w{ a b c d e f }
a.values_at(1, 3, 5) # => ["b", "d", "f"]
a.values_at(1, 3, 5, 7) # => ["b", "d", "f", nil]
a.values_at(-1, -3, -5, -7) # => ["f", "d", "b", nil]
a.values_at(1..3, 2...5) # => ["b", "c", "d", "c", "d", "e"]

一次取回多個索引位置的值。

30. uniq

a = [ "a", "a", "b", "b", "c" ]
a.uniq # => ["a", "b", "c"]

返回數組中不同的元素。原數組不受影響。


發佈了19 篇原創文章 · 獲贊 4 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章