`

ruby数组基本操作

 
阅读更多
#创建数组的几种方法#字面量创建的方法

a = [1,2,3]

a = []

a = %w[1 2 3]

a = Array[1,2,3]

#使用new方法创建

empty = Array.new #[]

nils = Array.new(3)     #[nil,nil,nil]

copy = Array.new(nils) #[nil,nil,nil]

zeros = Array.new(4,0) #[0,0,0,0]

count = Array.new(3){ |i| i+1 } #[1,2,3]#得到数组大小

[1,2,3].length #3

[].size #0

#基本操作获取数组当中的元素

Arr = Array['a','b','c','d','e']Arr[0] #first element

Arr[-1] #last element

Arr[a.size-1] #last element

Arr[-a.size-1] #first element

Arr[6] #nilArr[-6] #nil

Arr.at(2) #c

Arr.fetch(1) #b

Arr.fetch(-1) #e

Arr.fetch(6) #indexError

Arr.fetch(-6) #indexError

Arr.first #aArr.last #e

Arr[0,2] #['a','b']

Arr[0..2] #['a','b','c']

Arr[0...2] #['a','b']

Arr[1,1] #['b']

Arr.slice(0..1)#['a','b']

Arr.first(3) #['a','b','c'] 返回前三个元素

Arr.last(1) #['e'] 返回最后一个元素#常用操作#修改数组元素

Arr = [1,2,3]

Arr[0] = 0#[0,2,3]

Arr[-1]= 4#[0,2,4]

Arr[1] = nil#[0,nil,4]


#添加数组元素

Arr = [1,2,3]

Arr[3] = 4#[1,2,3,4]

Arr[5] = 6#[1,2,3,4,nil,6]

Arr << 7#[1,2,3,4,nil,6,7]

Arr << 8 << 9#[1,2,3,4,nil,6,7,8,9]

Arr.concat([4,5]) #[1,2,3,4,nil,6,7,8,9,4,5]


#删除数组元素Arr = [1,2,3,4,5,6,7,8]

Arr.slice!(0) #=>删除第一个元素[2,3,4,5,6,7,8]

Arr.slice!(-1,1) #=>删除最后一个元素[2,3,4,5,6,7]

Arr.slice!(2..3) #=>删除第3个和第4个元素[2,3,6,7]


#其它方法

Arr = [4,5]

Arr.replace([1,2,3]) #[1,2,3]

Arr.fill(0) #[0,0,0]

Arr.fill(nil,1,3) #[0,nil,nil,nil]

Arr.fill('a',2..4)  #[0,nil,'a','a','a']

Arr.fill(2..4){'b'} #[0,nil,'b','b','b']

Arr.clear #[]


#对数组进行迭代,更多请查看Enumerable模块

Arr = ['a','b','c']Arr.each {|e| print e} #print "abc"

Arr.reverse_each{|e| print e} #print "cba"

Arr.each_indexArr.each_with_index{|e,i| print e,i} #print a0b1c2

Arr.map{|x| x.upcase} #return ['A','B','C']#搜索数组和排序

Arr = ['h','e','l','l','0']

Arr.include?('l')

Arr.index('l')

Arr.rindex('l') #从后往前搜索

Arr.index{|c| c=~/[aeiou]/} #接收代码块 rindex同样也接收这种方式的调用

Arr.sort #也支持代码块调用

Arr.shuffle #随机排列数组ruby数组基本操作

#原文出处:http://hi.baidu.com/dwspider/item/825607e236b252a5ce2d4f07
分享到:
评论

相关推荐

    Ruby 小白入门指南理解 Ruby 及其特点.txt

    变量和数据类型:Ruby 支持多种基本数据类型,包括整数、浮点数、字符串、数组、哈希等。你需要了解如何声明和使用这些变量,以及它们之间的区别和用法。 条件语句和循环:Ruby 使用 if...else、case、while、for 等...

    Ruby字符串、条件、循环、数组、Hash、类基本操作笔记

    一、字符串操作 字符串插值 1.#{}: 任意放置在#{}中的合法Ruby代码都将被求值,并被替换为求值结果插入到原位置 2.单引号与双引号差别: 双引号允许字符转义,单引号不允许转义,里是什么字符,用户看到的就是什么字符...

    Ruby中的Hash哈希类型基本操作方法小结

    1.创建哈希:就像创建数组一样,我们可以通过Hash类来创建一个Hash实例: h1 = Hash.new #默认值为nil h2 = Hash.new(“This is my first hash instance”) #默认值为” This is my first hash instance”: 上面两...

    Ruby中Hash哈希结构的基本操作方法小结

    关于哈希 先来了解一下Hash的基本思路: ...显然,我们可以用数组来存。也就是:a[1] = 13; a[2] = 7; a[3] = 14; a[4] = 11; 当然,我们也可以用Hash来存。下面给出一个简单的Hash存储: 先来确定那个函

    array-readme-nyc-web-060319

    基本数组:创建,检索,更新和删除概述本课将深入探讨如何创建,操作和检索数组中的数据。目标创建并填充数组。 使用不同的方法将项目添加到数组。 使用其他方法从数组中删除项目。 使用sort,reverse和include方法...

    array-readme-v-000

    基本数组:创建,检索,更新和删除概述本课将深入探讨如何创建,操作和检索数组中的数据。目标创建并填充数组。 使用不同的方法将项目添加到数组。 使用其他方法从数组中删除项目。 使用sort,reverse和include方法...

    array-readme-online-web-ft-112618

    基本数组:创建,检索,更新和删除 概述 本课将深入探讨如何创建,操作和检索数组中的数据。 目标 创建并填充数组。 使用不同的方法将项目添加到数组。 使用其他方法从数组中删除项目。 使用sort,reverse和...

    array-readme-london-web-062419

    基本数组:创建,检索,更新和删除 概述 本课将深入探讨如何创建,操作和检索数组中的数据。 目标 创建并填充数组。 使用不同的方法将项目添加到数组。 使用其他方法从数组中删除项目。 使用sort,reverse和...

    ttt-6-position-taken-rb-ruby-apply-000

    定义一种方法,该方法使用if/else语句形式的控制流来操作数组。 概述 我们已经有显示游戏板的方法(映射到数组的索引)和要求用户输入并相应地填写游戏板上位置的方法。 但是,在我们的程序可以填写董事会职位之前...

    疯狂JAVA讲义

    4.6.2 基本类型数组的初始化 95 4.6.3 引用类型数组的初始化 96 4.6.4 没有多维数组 99 学生提问:我是否可以让图4.13中灰色覆盖的数组元素再次指向另一个数组?这样不可以扩展成三维数组吗?甚至扩展到更多维的...

    hackerrank:各种语言对Hackerrank挑战的解决方案-Scala,Java,Javascript,Ruby,..

    位操作 数据结构 数组 链表 数学 基本原理 数论 组合学 可能性 Java 介绍 弦乐 SQL 基本选择 Linux Shell 重击 文字处理 格雷普·塞德·阿克(Grep Sed Awk) 功能编程 介绍 递归 特别指定 ...

    rand_sort:具有不确定性能特征的数组排序

    基本上,这是学习猴子补丁的借口,猴子补丁是如何编写和建造宝石的。 也没有任何测试。 告我 用法 在您的Gemfile : gem 'rand_sort', :github =&gt; 'dydx/rand_sort' 然后在您的项目中只require 'rand_sort' 现在...

    javaSE代码实例

    5.4.1 基本类型数组赋值规则 67 5.4.2 引用型数组赋值规则 68 5.5 数组的常用操作 69 5.5.1 数组复制 69 5.5.2 数组排序 71 5.5.3 搜索指定元素 72 5.5.4 比较数组中的元素 73 5.6 关于args[] 73 ...

    MongoDB权威指南(中文版)高清

    52.2 集合 62.2.1 无模式 62.2.2 命名 72.3 数据库 82.4 启动MongoDB 92.5 MongoDB shell 102.5.1 运行shell 102.5.2 MongoDB客户端 112.5.3 shell中的基本操作 112.5.4 使用shell的窍门 132.6...

    leetcode叫数-leetcode:leetcode

    结果效率就炸了,只有33.33%,后来查了下文档和源码,发现原因是因为delete的实现是一个遍历中做判断,如果等于obj则continue,如果不是则更改将原来的数字移到新的index上,这样意味这每一次循环中都去操作了数组,...

    电子书:MongoDB权威指南(中文版)

    82.4 启动MongoDB 92.5 MongoDB Shell 102.5.1 运行shell 102.5.2 MongoDB 客户端 112.5.3 shell 中的基本操作 112.5.4 使用shell 的窍门 132.6 数据类型 152.6.1 基本数据类型 152.6.2 数字 172....

    Sedgewick-Algorithms-[removed]我用Javascript实现Sedgewick算法问题

    我也考虑过在Ruby,C或Go中执行此操作,但我选择专注于Javascript,因为它更有趣。 测验 运行命令npm test以查看每种算法的时间结果。 对于排序,测试将以大小为1000的数组运行100次。 如果要更改这些值,可以在/...

    Knockout API 中文版

    jQuery 没有基本的数据模型的概念,所以需要获取数据的数量(从table/div或者专门定义的CSS class),如果需要在某些SPAN里显示数据的数量,当添加新数据的时候,你还要记得更新这个SPAN的text。当然,你还要判断当...

    curriculum:标准化课程的存储库

    大纲 课程 以下是对 WDI 当前课程细分的简要尝试。 阶段 课程主要分为三个阶段 WDI 阶段的简要概述 第 1-4 周 编程基础 网络应用程序开发 第 6-8 周 ... 演示基本的命令行熟悉程度 ... 合并两个已排序的数组 回文 第 2

    ttt-6-position-taken-rb-cb-gh-000

    定义一种方法,该方法使用if/else语句形式的控制流来操作数组。 概述 我们已经有显示游戏板的方法(映射到数组的索引)和要求用户输入并相应地填写游戏板上位置的方法。 但是,在我们的程序可以填写董事会职位之前...

Global site tag (gtag.js) - Google Analytics