从数组中移除最后两个元素 - Ruby

3
如果我有这个数组 - [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,但它并不起作用。

1
array[0...-2] - Sagar Pandya
3个回答

7

试试这个:

array = array[0..-3]

这段代码告诉Ruby从索引0(第一个元素)到索引-3(倒数第三个元素)的数组片段,省略最后两个元素。
另外,你还可以使用Array#slice!在原位修改数组:
array.slice!(-2, 2)

5
使用以下数组: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]

4
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]

这是答案 - valk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接