将元素推送到数组开头的最简单方法是什么?

时间:2011-05-22 01:42:28

标签: arrays ruby

我想不出有一种方法可以做到这一点。有办法吗?

5 个答案:

答案 0 :(得分:354)

使用unshift方法怎么样?

  

ary.unshift(obj, ...) → ary
  将对象添加到自我的前面,向上移动其他元素。

并在使用中:

irb>> a = [ 0, 1, 2]
=> [0, 1, 2]
irb>> a.unshift('x')
=> ["x", 0, 1, 2]
irb>> a.inspect
=> "["x", 0, 1, 2]"

答案 1 :(得分:42)

您可以使用insert

a = [1,2,3]
a.insert(0,'x')
=> ['x',1,2,3]

第一个参数是要插入的索引,第二个参数是值。

答案 2 :(得分:19)

array = ["foo"]
array.unshift "bar"
array
=> ["bar", "foo"]
警告,这是破坏性的!

答案 3 :(得分:9)

您还可以使用array concatenation

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

这会创建一个新数组并且不会修改原始数据。

答案 4 :(得分:7)

您可以使用methodsolver查找Ruby函数。

这是一个小脚本,

require 'methodsolver'

solve { a = [1,2,3]; a.____(0) == [0,1,2,3] }

运行此打印

Found 1 methods
- Array#unshift

您可以使用

安装methodsolver
gem install methodsolver