Ruby中如何巧妙地将对象作为分隔符来切分数组?
- 内容介绍
- 文章标签
- 相关推荐
本文共计187个文字,预计阅读时间需要1分钟。
我有一种不确定长度的数组,让我们先看一个例子:[1, 2, 3, 4, 5]。我想从3之前的所有内容中减去1,然后在3之后的所有内容中加上1,得到示例:[0, 1, 3, 5, 6]。如果没有3,则将所有内容中加上1:[1, 2, 4, 5]。这样操作,最优解是:
我有一个不确定长度的数组,让我们说[1,2,3,4,5].我想从3之前的所有内容中减去1,并在3之后的所有内容中加1,制作示例[0,1,3,5,6].如果没有3,则为所有内容添加1:[1,2,4,5] => [2,3,5,6].这样做最优雅的方式是什么?a = [1, 2, 3, 4, 5] n = a.index(3) || -1 a.map.with_index{|e, i| e + (i <=> n)} # => [0, 1, 3, 5, 6]
本文共计187个文字,预计阅读时间需要1分钟。
我有一种不确定长度的数组,让我们先看一个例子:[1, 2, 3, 4, 5]。我想从3之前的所有内容中减去1,然后在3之后的所有内容中加上1,得到示例:[0, 1, 3, 5, 6]。如果没有3,则将所有内容中加上1:[1, 2, 4, 5]。这样操作,最优解是:
我有一个不确定长度的数组,让我们说[1,2,3,4,5].我想从3之前的所有内容中减去1,并在3之后的所有内容中加1,制作示例[0,1,3,5,6].如果没有3,则为所有内容添加1:[1,2,4,5] => [2,3,5,6].这样做最优雅的方式是什么?a = [1, 2, 3, 4, 5] n = a.index(3) || -1 a.map.with_index{|e, i| e + (i <=> n)} # => [0, 1, 3, 5, 6]

