Ruby中Array的常用API總結

1、  數組的創建

1)、names=Array.new()  /  names = Array.new(20)  / names = Array.new(5,”mac”)   /

    names =Array.new(10){|e| e= e*1}   #names = [0,1,2,3,4,5,6,7,8,9]

2)、names=[]

3)、names=Array(5)

4)、names = Array.[](1,2,3,4,5)

5)、names = Array[1,2,3,4,5]

6)、names = Array(0..9)

 

2小知識:
歎號! 一般用到這個時候,是修改自身
問號? 一般用到這個的時候,時返回布爾
符號[] 代表是數組
符號{} 代表散列

 

3、常見API總結

編號

API名稱

說明

示例

1

array & other_array

數組與,返回兩個數組的交集

[1,2,3] & [2,3,4,5] ->[2,3]

2

array * int

 array * str

複製數組

[1,2]*2 -> [1,2,1,2]

[1,2,3,4]*”+” -> “1+2+3+4”

3

array + other_array

兩個數組相加,但是不排除重複元素

[1,2,3,4]+[2,3,4,5] -> [1,2,3,4,2,3,4,5]

4

array - other_array

返回第一個數組與第二個數組不同的元素

[1,2,3,4]+[2,3,4,5] -> [1]

5

array <=> other_array

比較兩個數組,返回值爲_1、0、1

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

[2,3,4] <=> [2,3,4] -> 0

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

6

array | other_array

追加元素,但是排除重複元素

[1,2,3,4,5] | [3,4,5,6,7] -> [1,2,3,4,5,6,7]

7

array << obj

追加元素,但是不排除重複元素

[1,2,3,4,5] <<5 ->[1,2,3,4,5,5]

8

array == other_array

判斷兩個數組是否相等

[1,2,3,4] == [1,2,3,4] -> true

[1,2,3,4] == [1,2] -> false

9

array.slice(start,length)

array.slice(range)

截取數組,或者返回給定位置的元素

[1,2,3,4,5,6].slice(0,2) -> [1,2]

[1,2,3,4,5,6].slice(2) -> 3#這邊超出數組的長度會返回nil

10

array.abbrev(pattern = nil)

 

 

11

array.assoc(obj)

從數組的每個元素中搜尋制定對象

[[1,2,3],[4,5,6],[2,3,4]].assoc(2)

->[2,3,4] #返回所有元素中第一個匹配的元素

12

array.at(index)

返回制定位置的元素,如果指定位置超過了數組的長度則返回nil

[1,2,3,4,5,6,2].at(2)  -> 3

13

array.clear

清空數組

[1,2,3,4].clear -> []

14

array.collect { |item| block }
array.map { |item| block }

collect的作用跟map類似,執行一個black來返回一個新的數組

[1,2,3,4,5].map{|item| item+1} -> [2,3,4,5,6]

[1,2,3,4,5].collect{|item| item+1} -> [2,3,4,5,6]

15

array.compact

array.compact!

刪除值爲nil的元素後生成新數組並返回它

[1,2,3,nil,nil,5,6].compact -> [1,2,3,5,6]

16

array.concat(other_array)

合併兩個數組,但是不刪除重複元素

[1,2,3,4,5].concat([3,4,5,6,7,8]) -> [1,2,3,4,5,3,4,5,6,7,8]

17

array.delete(obj)
array.delete(obj) { block }

刪除指定元素,如果該元素有重複元素則全部刪除

第二種帶block的方法是,當找不到要刪除的元素是,返回block中的內容

[1,2,3,4,5,2,2,2].delete(2) -> [1,3,4,5]  #該方法的返回值爲刪除了的元素

 

[1,2,3,4,5,6].delete(8){2} -> 2

18

array.delete_at(index)

刪除指定元素,如果超出數組長度返回nil

[1,2,3,4].delete_at(2) -> 3

19

array.delete_if { |item| block }

刪除滿足塊操作的元素

[1,2,3,4,5,6].delete_if{|item| item%2==0} -> [1,3,5]

20

array.each { |item| block }

循環迭代數組

[1,2,3].each {|x| x+1 }

21

array.each_index { |index| block }

 

[1,2,3].each_index {|index| index+1 }

22

array.empty?

判斷一個數組是否爲空

[1,2,3].empty?  -> false

23

array.eql?(other)

判斷兩個數組是否相等

[1,2,3].eql?([1,2,3])  -> true

24

array.fetch(index)
array.fetch(index, default)
array.fetch(index) { |index| block }

fetch匹配的是具體的元素,和index方法正好相反

[1,2,3,4,5].index(5)  -> 4

[1,2,3,4,5].fetch(4)  -> 5

25

array.fill(obj) array.fill(obj, start [, length]) [or]
array.fill(obj, range) [or]
array.fill { |index| block } [or]
array.fill(start [, length] ) { |index| block } [or]
array.fill(range) { |index| block }

填充數組,是針對一個已經定義的數組。

[1,2,3,4,5].fill(6) ->[6,6,6,6,6]

[1,2,3,4,5].fill(6,2,3) ->[1,2,6,6,6]

26

array.first
array.first(n)

返回第1個或者前n個元素。

[1,2,3,4,5].first -> 1

[1,2,3,4,5].first(3) -> [1,2,3]

27

array.flatten

array.flatten!

使數組一維化,並返回一個新的數組

[[1,2,3],[[4,5]],[[[6,7]]]].flatten -> [1,2,3,4,5,6,7]

28

array.frozen?

 

 

29

array.hash

對數組生成一個hash碼,不知道什麼玩意。

[1,2,3,4,5].hash -> 228052319

30

array.include?(obj)

判斷數組中是否包含某個元素

[1,2,3,4].include?(2) -> true

[1,2,3,4].include?(5) -> false

31

array.index(obj)

返回數組中第一個==val的元素的位置

[1,2,3,4,5,6,2,2,2].index(2) -> 1

32

array.indexes(i1, i2, ... iN)
array.indices(i1, i2, ... iN)

以數組的形式返回其索引值與各參數值相等的元素

[1,2,3,4,5,6,7,8].indexes(0,2,4) -> [1,3,5]

現在這個方法不存在了??

33

array.insert(index, obj...)

在指定位置插入元素

[1,2,3,4].insert(1,5) -> [1,5,2,3,4]

34

array.inspect

返回一個可打印輸出格式的數組

[1,2,3].inspect

35

array.join(sep=$,)

將數組按一定的分隔符連接起來

[1,2,3,4].join(“+”) -> “1+2+3+4”

36

array.last

array.last(n)

返回數組末尾的元素

[1,2,3,4,5,6].last -> 6

[1,2,3,4,5,6].last(3) -> [4,5,6]

37

array.length

返回數組的長度

[1,2,3,4].length -> 4

38

array.map { |item| block }
array.collect { |item| block }

循環迭代數組,返回迭代後的新數組

[1,2,3,4].map {|i| i+1} -> [2,3,4,5]

39

array.nitems

返回數組中空元素的個數

[1,2,nil,nil,nil].nitems -> 3

難道現在沒有這個方法了?

40

array.pop

刪除最後一個元素

[1,2,3,4].pop -> [1,2,3]

41

array.push(obj, ...)

插入元素

[1,2,3].push(4) -> [1,2,3,4]

42

array.rassoc(key)

遍歷數組每個元素(元素必須是數組),

匹配索引爲 1 的值是否與查找的字符相 等,返回第一個相等的元素

a = [[15,1], [25,2], [35,2]]

p a.rassoc(2)                  » [25, 2]

 

43

array.reject { |item| block }

循環迭代數組

 

44

array.replace(other_array)

替換數組

a=[“a”,”b”]

a.replace([“x”,”y”,”z”]) ->

[“x”,”y”,”z”]

45

array.reverse

array.reverse!

翻轉數組

[1,2,3,4].reverse -> [4,3,2,1]

46

array.rindex(obj)

返回最後一個相等的元素的索引值

a=[“a”,”b”,”b”,”b”,”c”]

a.rindex(“b”)  -> 3

47

array.shift

刪除數組中的第一個元素,並刪除它

[1,2,3,4].shift  -> 1

48

array.slice(index)

array.slice(start, length)

把當前數組切片

[1,2,3,4,5].slice(3) -> 4

[1,2,3,4,5,6].slice(3,5) ->[4,5,6]

49

array.sort

 array.sort { | a,b | block }

數組排序

[4,3,2,1].sort() -> [1,2,3,4]

[7,3,4,8,1,2].sort {|x,y| xóy}

49

array.to_a

返回自己

[1,2,3,4].to_a -> [1,2,3,4]

50

array.to_ary

同樣返回自己

[1,2,3,4].to_ary -> [1,2,3,4]

51

array.to_s

將數組轉換爲字符串

[1,2,3,4].to_s -> “[1,2,3,4]”

52

array.uniq

刪除數組中重複的元素

[1,2,3,2,2,2].uniq -> [1,2,3]

53

array.unshift(obj, ...)

在數組第一個元素前添加元素

[1,2,3,4,5].unshift(0) -> [0,1,2,3,4,5]

54

array.values_at(selector,...)

 

[1,2,3,4,5].value_at(3)

沒有這個方法了嗎???

55

array.zip(arg, ...)
array.zip(arg, ...){ | arr | block }

打包數組

a=[1,2,3,4]

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

c=a.zip(b) -> [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]

 

 

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