ruby 常用的陣列操作

2021-08-26 10:11:54 字數 4501 閱讀 3989

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! # => ["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 # => 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"

刪除陣列中值為某個給定值的元素。

15. each

a = [ "a", "b", "c" ]

a.each

result :

a -- b -- c --

遍歷陣列,列印元素值。

16. each_index

a = [ "a", "b", "c" ]

a.each_index

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

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

返回陣列中不同的元素。原陣列不受影響。

1

ruby 陣列操作

陣列的建立 arr array.new num 建立num個元素的陣列,所有陣列元素為nil arr array.new num,elem 建立num個元素的陣列,所有陣列元素為elem arr array m.n 建立m.n元素為m到n的陣列 包括n m.n不包括n arr array elem1...

ruby陣列操作

2009 08 04陣列的建立 arr array.new num 建立num個元素的陣列,所有陣列元素為nil arr array.new num,elem 建立num個元素的陣列,所有陣列元素為elem arr array m.n 建立m.n元素為m到n的陣列 包括n m.n不包括n arr a...

ruby 陣列操作

陣列的建立 arr array.new num 建立num個元素的陣列,所有陣列元素為nil arr array.new num,elem 建立num個元素的陣列,所有陣列元素為elem arr array m.n 建立m.n元素為m到n的陣列 包括n m.n不包括n arr array elem1...