让:
example = [1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)
我想改组它的前五个元素.其他元素必须保持在同一索引下,例如:
[2,4,1,3,5,6,7,8,9]
[3,1,4,5,2,6,7,8,9]
# etc
Run Code Online (Sandbox Code Playgroud)
我试过了example.shuffle,但它洗了所有元素.
Ste*_*fan 10
您可以通过以下方式获得前5个元素[]:
example[0, 5]
#=> [1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
同样,您可以通过以下方式设置前5个元素[]=:
example[0, 5] = [5, 4, 3, 2, 1]
#=> [5, 4, 3, 2, 1]
example
#=> [5, 4, 3, 2, 1, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
所以对于shuffle前5个元素,您可以使用:
example[0, 5] = example[0, 5].shuffle
#=> [3, 2, 1, 4, 5]
example
#=> [3, 2, 1, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
请注意,这example[0, 5].shuffle!将无效,因为Array#[]返回一个新数组而不是对子数组的引用(在Ruby中没有这样的东西).
| 归档时间: |
|
| 查看次数: |
224 次 |
| 最近记录: |