删除数组中的最后2个元素 - Ruby

时间:2017-03-31 20:56:09

标签: ruby-on-rails ruby

如果我有这个数组 - [49, 33, 8, 45, 20, 6, 34, 50, 31, 36, 28, 42, 35, 32, 7, 2, 9, 1, 18, 21]我怎么能得到这个回报 - [49, 33, 8, 45, 20, 6, 34, 50, 31, 36, 28, 42, 35, 32, 7, 2, 9, 1]我已经尝试了这个并且它不起作用。 array.size - 2 ..

3 个答案:

答案 0 :(得分:6)

试试这个:

array = array[0..-3]

这告诉Ruby从索引0(第一个元素)到索引-3(从最后一个元素开始的第三个元素)获取数组的切片,省略最后两个元素。

或者,您也可以使用Array#slice!修改数组:

array.slice!(-2, 2)

答案 1 :(得分:4)

使用

array = [49, 33, 8, 45, 20, 6, 34, 50, 31, 36, 28, 42, 35, 32, 7, 2, 9, 1, 18, 21]

删除最后两个元素使用

a[0..-3]

a[0..a.length-3]

答案 2 :(得分:1)

pop方法从数组中删除(并返回)最后一个元素。它需要一个可选参数:

a = [49, 33, 8, 45, 20, 6, 34, 50, 31, 36, 28, 42, 35, 32, 7, 2, 9, 1, 18, 21] 

a.pop(2)

p a # => [49, 33, 8, 45, 20, 6, 34, 50, 31, 36, 28, 42, 35, 32, 7, 2, 9, 1]