如何为除第一个和最后一个元素之外的所有数组元素添加前缀?
是否有单行解决方案?或者比我的“更好”的解决方案?
result = ["svn up", "20111128025010", "20111128025022", "pass"]
for i in 1..result.length-2
result[i]=" - "+result[i]
end
最佳答案
你可以这样做:
result[1 ... -1].each { |s| s[0, 0] = ' - ' }
注意是三个点,不是两个。这是有效的,因为 s[0,0]
就地修改了 s
。如果您使用的是 1.9.3+,您也可以(并且可能应该)使用 prepend
:
result[1 ... -1].each { |s| s.prepend(' - ') }
并且,作为 the Tin Man在评论中注明,您还可以使用更常见的双点范围运算符:
result[1 .. -2].each { |s| s[0, 0] = ' - ' }
result[1 .. -2].each { |s| s.prepend(' - ') }
您使用哪个范围运算符是一个偏好问题。
关于ruby - 如何为除第一个和最后一个之外的所有数组元素插入前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8556942/