0
我想从一个Array
删除值,并得到仍然是这样的:如何让留`delete_at`而不破坏
a = [1, 2, 3, 4]
=> [1, 2, 3, 4]
a.delete_at(2)
=> 3
a
=> [1, 2, 4]
我怎样才能不[1, 2, 4]
变量的破坏?
我想从一个Array
删除值,并得到仍然是这样的:如何让留`delete_at`而不破坏
a = [1, 2, 3, 4]
=> [1, 2, 3, 4]
a.delete_at(2)
=> 3
a
=> [1, 2, 4]
我怎样才能不[1, 2, 4]
变量的破坏?
有几个方法,你可以做,诚然,他们似乎并不很优雅:
a[0..1] + a[3..-1]
# => [1, 2, 4]
a.dup.tap { |x| x.delete_at(2) }
# => [1, 2, 4]
a.values_at(0..1, 3..-1)
# => [1, 2, 4]
我个人认为,这传达你的意图的方式最好是:
a.reject.with_index { |_, i| i == 2 }
# => [1, 2, 4]