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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章