首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby数组中除最后一个元素外的所有元素

Ruby数组中除最后一个元素外的所有元素
EN

Stack Overflow用户
提问于 2009-10-22 07:57:14
回答 12查看 105.6K关注 0票数 147

假设我有一个Ruby数组

代码语言:javascript
复制
a = [1, 2, 3, 4]

如果我想要除第一项之外的所有内容,我可以编写a.drop(1),这很棒。然而,如果我想要最后一项之外的所有东西,我只能这样想

代码语言:javascript
复制
a[0..-2]   # or
a[0...-1]

但这两种方法似乎都不像使用drop那样干净。我还遗漏了其他内置的方法吗?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2009-10-22 08:01:27

也许..。

代码语言:javascript
复制
a = t               # => [1, 2, 3, 4]
a.first a.size - 1  # => [1, 2, 3]

代码语言:javascript
复制
a.take 3

代码语言:javascript
复制
a.first 3

代码语言:javascript
复制
a.pop

,它将返回最后一个数组,并保留数组之前的所有内容。

或者让计算机为它的晚餐工作:

代码语言:javascript
复制
a.reverse.drop(1).reverse

代码语言:javascript
复制
class Array
  def clip n=1
    take size - n
  end
end
a          # => [1, 2, 3, 4]
a.clip     # => [1, 2, 3]
a = a + a  # => [1, 2, 3, 4, 1, 2, 3, 4]
a.clip 2   # => [1, 2, 3, 4, 1, 2]
票数 138
EN

Stack Overflow用户

发布于 2009-10-25 01:31:52

出于好奇,你为什么不喜欢a[0...-1]呢?

也许是这样的:

代码语言:javascript
复制
class Array
    def drop_last
        self[0...-1]
    end
end
票数 99
EN

Stack Overflow用户

发布于 2013-05-16 04:38:45

另一个很酷的把戏

代码语言:javascript
复制
>> *a, b = [1,2,3]
=> [1, 2, 3]
>> a
=> [1, 2]
>> b
=> 3
票数 62
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1604305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档