定义二维数组:

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. MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划

    这篇文章主要介绍了MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划的相关资料,需要的朋友可以参考下 一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存 ...

  2. STM32之SRAM调试

    在学习STM32的时候,由于烧FLASH的所造成的时间会比较慢,而在SRAM中调试的时间会比FLASH快很多,再加上FLASH的时候会经常擦除芯片,会对芯片的寿命造成一定的影响, 其实我本人觉得在学习 ...

  3. 13.final关键字

    1.final修饰的变量只能赋一次值,不赋值时,会提示初始化 2.final修饰的方法不能被重写 3.final修饰的类不能被继承

  4. *HDU 1068 二分图

    Girls and Boys Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  5. 浏览器对象模型BOM小结

    概念 BOM (Browser Object Model) 浏览器对象模型 BOM提供了独立于内容而与浏览器窗口进行交互的对象 BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window B ...

  6. Linux:使用nohup让进程在后台可靠运行

    学习之余我最大的乐趣是找一部不错的电影慢慢品味,这也是我缓解压力的最好方式之一,由于我常去的字幕组网站需要签到才可以下载字幕,像这种娱乐网站谁有时间天天记得去签到呢,but作为一个准程序猿应该有更好的 ...

  7. Swift与OC混编

    OC调用Swift的方法:添加 import "xxxx-Swift.h" 头文件即可 Swift调用OC的方法:需要建立桥接: xxxx-Bridging-Header.h 头文 ...

  8. android——从零开始

     一.JDK(不用安装)1.下载适合的jdk2.配置环境变量 添加一系统边=变量       JAVA_HOME=D:\Java\jdk1.8.0_91      CLASSPATH=.;%JAVA_ ...

  9. 关于java.lang.NoSuchMethodError: android.widget.RelativeLayout.setBackground的解决办法

    今天用一个安卓4.0.4版本的手机测试手上的项目,发现logcat弹出这样一个提示“java.lang.NoSuchMethodError: android.widget.RelativeLayout ...

  10. asp.net identity 3.0.0 在MVC下的基本使用 序言

    本人也尚在学习使用之中,错误之处请大家指正. 开发环境:vs2015 UP1   项目环境:asp.net 4.6.1   模板为:asp.net 5 模板     identity版本为:asp.n ...