我有一个Ruby数组,看起来像这样:
[ 0] "Red",
[ 1] "Green",
[ 2] "Blue",
[ 3] "Yellow",
[ 4] "Cyan",
[ 5] "Magenta",
[ 6] "Orange",
[ 7] "Purple",
[ 8] "Pink",
[ 9] "White",
[10] "Black"
我需要在say Yellow和Purple之间搜索值,然后重建数组,使其看起来像这样:
[ 0] "Red",
[ 1] "Green",
[ 2] "Blue",
[ 3] [[0] "Cyan",[1] "Magenta",[2] "Orange" ],
[ 4] "Cyan",
[ 5] "Magenta",
[ 6] "Orange",
[ 7] "Purple",
[ 8] "Pink",
[ 9] "White",
[10] "Black"
用ruby有简单的方法吗?
最佳答案
ar = %w(red green blue yellow cyan magenta orange purple pink white black)
i = ar.index('yellow')
ar[i] = ar[i+1 ... ar.index('purple')]
p ar #=> ["red", "green", "blue", ["cyan", "magenta", "orange"], "cyan", "magenta", "orange", "purple", "pink", "white", "black"]