定义二维数组:

list = [['保密',''],['男',1],['女',0]]

引用

怎么创建与返回值是二维数组形式

不知道你想要怎样的答案

如果是一方法想要返回二维数组,方法的最后一行是那个数组就好了

def  list

[['保密',''],['男',1],['女',0]]

end

输出二维数组:

p [['保密',''],['男',1],['女',0]]

#或者

puts [['保密',''],['男',1],['女',0]].inspect

根据内容删除数组:

irb(main):010:0> [[1],2,3].delete([1])

=> [1]

irb(main):011:0> [[1],2,3].delete(2)

=> 2

irb(main):012:0>

根据索引删除数组:

irb(main):012:0> [[1],2,3].delete_at(2)

=> 3

irb(main):013:0> [[1],2,3].delete_at(0)

=> [1]

irb(main):014:0>

插入起始位置

irb(main):021:0> [[1],2,3].insert(0, ['aa'])

=> ["aa", [1], 2, 3]

插入末尾位置

irb(main):022:0> [[1],2,3].insert(-1, ['aa'])

=> [[1], 2, 3, "aa"]

ruby中数组不用预分配空间,所以不用覆盖长度,超出长度索引,不抛出,返回nil

irb(main):023:0> [[1],2,3][100]

=> nil

数组常用功能

ZIP

a=[1,2,3,4,5]

b=[‘a’,’b’,’c’,’d’]

a.zip(b)

b.zip(a)

join

输出数组元素的一个逗号分隔的列表.您将能够得到一个字符串分隔的任何字符串

a.join(‘,’)

输出数组元素的一个逗号分隔的列表将能够得到一个字符串分隔的任何字符串,数组中的元素使用Array#join方法。

p ["apple", "orange", "lemon"].join(',') #=> "apple,orange,lemon"

p ["apple", "orange", "lemon"].join('#') #=> "apple#orange#lemon"

p [55, 49, 100, 100, 0].join(',') #=> "55,49,100,100,0"

p [3, ["apple", 250], ["orange", 400]].join(',') #=> "3,apple,250,orange,400"

获取数组中的元素数

你可以得到数组中的元素个数的数组长度数组大小的方法或方法。

p ["apple", "orange", "lemon"].size #=> 3

p ["apple", "orange", "lemon"].length #=> 3

p [55, 49, 100, 100, 0].size #=> 5

p [3, ["apple", 250], ["orange", 400]].size #=> 3

将元素添加到数组

可以使用Array#<<的方法,Array#unshift方法,Array#push。

array#<<

将元素追加早最后,array#unshift方法可以将元素添加到数组开头。

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

A << 99#=> [1,2,3,4,5,99]

A.Unshift (99)#=> [99,1,2,3,4,5,99]

Array#push

方法可以被添加到的数组元素的结尾

A = [1,2,3,4,5]

A.Push(10)#=> [1,2,3,4,5,10]

从开头或结尾的数组元素删除

在Array#shift的方法,可以检索的元素,从一开始的数组。

array#pop方法是可以检索的数组中的元素。提取值的数组移位的方法,数组#pop方法,数组中的元素的提取物中删除。

a = [1,2,3,4,5]

a.push(10) #=> [1, 2, 3, 4, 5, 10]

p a.pop #=> 10

p a.pop #=> 5

p a #=> [1, 2, 3, 4]

提取一个子数组

你可以把部分的数组用array#slice的方法或Array#[]的方法。

a = [1,2,3,4,5]

p a[0,2] #=> [1, 2]

p a[1..3] #=> [2, 3, 4]

p a.slice(0,2) #=> [1, 2]

p a.slice(1..3) #=> [2, 3, 4]

操作

交集

&

数组与,返回两数组的交集

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

复制

*

复制数组n次

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

并集

+

返回两数组的并集,但不排除重复元素

[1,2]+[2,3]    =>[1,2,2,3]

追加

<<

追加元素,但不排除重复元素

[1,2]<<[2,3]   => [1,2,2,3]

追加(去重)

|

追加元素,但排除重复元素

[1,2] | [2,3]    => [1,2,3]

差集

-

返回第一个数组与第二个数组不同的元素

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

比较

<=>

比较数组

[1,2]<=>[2,3] =>flase

比较相等

==

比较数组,若所有元素均相等时返回真

[1,2]==[2,1]    =>flase

寻找(关联)

assoc

从数组的每个元素中寻找指定对象

[[1,2],[3,4]].assoc(2)=> [1,2]

按索引查找

at

找到数组的第N个元素

负数表示逆向查找

["a","b","c","d","e"].at(0) => "a"

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

清空

clear

删除数组中的所有元素

["a","b","c","d","e"]. clear

过程块遍历处理

collect

collect!

用一个过程块对数组的每个元素进行处理

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

去nil

compact

compact!

删除值为nil的元素后生成新数组并返回它

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

删除指定

delete

删除元素,如果元素重复,全部删除

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

a.delete("b")

puts a    => ["a","c"]

删除位置

delete_at

删除pos所指位置的元素并返回它。若pos超出数组范围则返回nil

a = %w( ant bat cat dog )

a.delete_at(2)

a=> ["ant", "bat", "dog"]

a.delete_at(99) => nil

删除条件

delete_if

根据条件删除

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

a.delete_if {|x| x >= "b" } => ["a"]

遍历

each

对数组的每个元素按值进行迭代操作

查找

查寻方法find,也有:

list = ['a','b','c']  list.find{|x| x=='c'}

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

a.each {|x| print x, " -- " } =>  "a -- b -- c --"

遍历索引

each_index

对数组的每个元素按索引进行迭代操作

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

a.each_index {|x| print x, " -- " }=> "0 -- 1 -- 2 --"

判断空

empty?

判断数组是否为空,为空则返回真

[].empty?=> true

判断相等

eql!

比较两数组是否相等

["a","b","c"].eql?(["a","b","c"]) => true

填充

fill

填充数组

["a","b","c","d"].fill("x") => ["x","x","x","x"]

["a","b","c","d"].fill("z", 2, 2) => ["x", "x", "z", "z"]

返首

first

返回数组的首元素。若没有首元素则返回nil

[ "q", "r", "s", "t" ].first   => "q"

返尾

last

返回数组末尾的元素。若数组为空时,返回nil

["w","x","y","z"].last     => "z"

判断包含

include?

判断数组中是否包含元素

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

a.include?("b") => true

a.include?("z") => false

查索引

index

返回数组中第一个==val的元素的位置

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

a.index("b") => 1

a.index("z") => nil

按索引返

indexes

以数组形式返回其索引值与各参数值相等的元素

a = [ "a", "b", "c", "d", "e", "f", "g" ]

a.indexes(0, 2, 4)   => ["a", "c", "e"]

a.indexes( 2, 4, 12)=> [ "c", "e", nil]

插入

insert

在索引为nth的元素前面插入第2参数以后的值

ary = %w(foo bar baz)

ary.insert 2,'a','b'

p ary => ["foo", "bar", "a", "b", "baz"]

加入间隔

join

将数组元素按一定的分隔符连接起来

[ "a", "b", "c" ].join=> "abc"

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

个数

length

尺寸

size

返回数组长度。若数组为空则返回0

[1,2,3].length   => 3

[1,2,3].size      => 3

取多个元素(子集)

nitems

返回非nil元素的个数

[ 1, nil, 3, nil, 5 ].nitems => 3

弹出

pop

删除末尾元素并返回它。若数组为空则返回nil

a = [ "a", "m", "z" ]

a.pop             => "z"

p a                 => ["a", "m"]

压入

push

添加新元素

["a","b"].push(['1','2'])=>["a", "b", ["1", "2"]]

rassoc

遍历数组每个元素(元素必须是数组),匹配索引为1的值是否与查找的字符相等,返回第一个相等的元素

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

p a.rassoc(2)         => [25, 2]

替换replace

替换数组元素

a = ["a","b"]

a.replace(["x","y","z"])

p a                 =>["x", "y", "z"]

反转reverse

reverse!

将所有元素以逆序重新排列生成新数组并返回它

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

右索引rindex

返回最后一个值相等的元素的索引值

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

a.rindex("b")           => 3

去首shift

删除数组的首元素并返回它。剩余元素依次提前。若数组为空返回nil

args = ["-m","-q","filename"]

args.shift => "-m"

args => ["-q", "filename"]

排序sort

sort!

从小到大排序

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

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

去重uniq

uniq!

删除数组中的重复元素后生成新数组并返回它

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

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

从头插入unshift

在数组第一个元素前添加元素

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

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

转字符串to_s

将数组的所有元素连接成字符串

["a","e","i","o"].to_s  => "aeio"

展平flatten

二维数组变一维

Array常用方法的更多相关文章

  1. Javascript语言精粹之Array常用方法分析

    Javascript语言精粹之Array常用方法分析 1.Array常用方法分析 1.1 Array.prototype.sort() Javascript的默认比较函数假定被排序元素都是字符串,所以 ...

  2. JavaScript原生Array常用方法

    JavaScript原生Array常用方法 在入门Vue时, 列表渲染一节中提到数组的变异方法, 其中包括push(), pop(), shift(), unshift(), splice(), so ...

  3. JS数组array常用方法

    JS数组array常用方法 1.检测数组 1)检测对象是否为数组,使用instanceof 操作符 if(value instanceof Array) { //对数组执行某些操作 } 2)获取对象的 ...

  4. Javascript中String、Array常用方法介绍

    string和array作为javascript内置对象,其中许多方法无论是在开发过程中,还是在面试的时候都有机会被面试官问到,这里对经常用到的方法做一个介绍,这些方法都有过很多的实际应用场景,所以对 ...

  5. 007-js中的Array常用方法

    原文:http://www.runoob.com/jsref/jsref-obj-array.html 摘要常用方法 const array=new Array(); // 1 增加元素 // 1.1 ...

  6. javascript中Array常用方法

    一.基本概念 1.什么是数组 数组就是一组数据的集合 其表现形式就是内存中的一段连续的内存地址 数组名称其实就是连续内存地址的首地址 2.关于js中的数组特点 数组定义时无需指定数据类型 数组定义时可 ...

  7. JS Array常用方法indexOf/filter/forEach/map/reduce详解

    Array共有九个方法   Array.prototype.indexOf Array.prototype.lastIndexOf Array.prototype.every Array.protot ...

  8. Array常用方法总结

    一.[常用语法] 1.1.数组的创建var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定 ...

  9. Js中Array常用方法小结

    说起Array的方法,不免让人皱一下眉头,下面我们从增删改查角度依次来总结. 1.增 push: 将传入的参数 ,插入数组的尾部,并返回新数组的长度.不管传入参数为一个值还是一个数组,都作为插入数组的 ...

随机推荐

  1. word-wrap: break-word;和word-break: break-all;的区别

    详细查看以下链接.(转载自张鑫旭大神空间) http://www.zhangxinxu.com/wordpress/2015/11/diff-word-break-break-all-word-wra ...

  2. convert与int.parse int

    1,convert :适合将object 转换 int:简单数据转换 int.parse:将string类型转换为int 2,convert:对于空值返回0 不会报异常 int.parse:将会抛出异 ...

  3. 动态生成linearLayout

    LinearLayout linearLayout=new LinearLayout(this); linearLayout.setOrientation(LinearLayout.VERTICAL) ...

  4. quicksort

    快排.... void quicksort(int *a,int left,int right){ if(left >= right){ return ; } int i = left; int ...

  5. Nodejs:Glob对象

    模块Glob: glob主要用处为筛选文件 API样例: var globInstance = new glob.Glob("@(a|a1|b).js",{nonull:true, ...

  6. vert.x学习(四),使用模板解析器ClassLoaderTemplateResolver

    在vert.x中使用模板解析,可以为我们带来很多方便.我这里学习了一下ClassLoaderTemplateResolver的简单使用.这次工程配置与上篇一样,不需要做任何多的配置.直接编写代码就可以 ...

  7. c++多态的实现

    在面试中常常会有面试官问道,c++的多态的实现机制.那么,多态到底该如何实现呢? 多态的简单介绍 一般来说,多态分为两种,静态多态和动态多态.静态多态也称编译时多态,主要包括模板和重载.而动态多态则是 ...

  8. pring — jdbc 配置文件的设置

    ---参考配置,  链接mysql 数据库 <!-- 1.配置数据源 --><bean id="dataSource" class="org.sprin ...

  9. composer install 卡壳

    曾经用npm依赖包的时候也遇到了相应的问题,总而言之在国内,各种依赖包就换成国内的镜像吧你懂得! linux 或 window 命令行输入 composer config -g repo.packag ...

  10. Repeater嵌套Repeater并取得嵌套Repeater里面的控件

    前台代码:    <asp:Repeater ID="RepeaterScene" runat="server" OnItemDataBound=&quo ...