我有一个数组。我需要保留除索引为0的元素以外的所有内容。我已经编程了一整天,现在我的大脑已经崩溃了。如果能提供任何帮助,那将是非常棒的。谢谢!
some_array[1..-1]
some_array = [1,2,3,4]
some_array.delete_at(0)
# => 1
some_array
# => [2,3,4]
根据结果的用途(一个删除了第一个元素的数组),获取结果的方式有不同的方法,而如何使用它可能会影响选择。
一种方法是通过应用方法将原始数组更改为删除第一个元素的新数组,忽略该方法的结果,并由于应用方法的副作用实现所需的结果。 OP接受了执行此操作的答案(这意味着在他的情况下它有效):
a = [ "a", "b", "c" ]
a.shift #=> "a"
a #=> ["b", "c"]
a
是数组):puts a.method1.method2.method3.method4
我想要做这件事:
puts a.method1.method2.removeFirstElement.method3.method4
在另一个答案中,展示了使用slice
的方法,虽然没有明确说明它在某些情况下如何比被接受的答案更好:
puts a.method1.method2.slice(1..-1).method3.method4
temp = a.method1.method2
temp.shift
puts temp.method3.method4
slice!(0)
来代替shift
,以实际改变数组,因为感叹号清楚地表明了数组正在被改变;shift
方法不符合当前建议,在会改变对象的方法中添加感叹号。但是,我可能仍然会使用shift
来避免混乱的(0)
。)如何使用切片?
a = [ "a", "b", "c" ]
a.slice!(0) #=> "a"
a #=> ["b", "c"]
http://www.ruby-doc.org/core-2.1.0/Array.html#method-i-slice-21
shift
和unshift
是用于从数组中删除元素的,可以使用一个有趣(粗俗)的提示法,尝试从名称中删除“f”字母。 :) - Phrogz