I have the following array:
arr = [
"Assignment:Chapter 1 Code Exercises (Real)",
[100, 100, 100, 100, 100, 100, 100, 100],
"Assignment:Chapter 2 Code Exercises (Real)",
[93, 75, 100, 100, 100, 55, 75, 100],
"Assignment:Chapter 3 Code Exercises (Real)",
[100, 80, 100, 100, 90, 85, 65, 100],
"Assignment:Chapter 4 Code Exercises (Real)",
[100, 90, 100, 100, 95, 100, 75, 70],
"Assignment:Chapter 5 Code Exercises (Real)",
[50, 100, 100, 100, 60, 70, 90, 100],
"Assignment:Chapter 6 Code Exercises (Real)",
[0, 85, 100, 100, 60, 85, 70, 85, 100],
"Assignment:Chapter 14 Code Exercises (Real)",
[75, 90, 100, 100, 0, 100, 0, 100],
"Assignment:Chapter 15 Code Exercises (Real)",
[97, 100, 100, 100, 0, 100, 0, 100]
]
I would like to convert this to:
[
["Assignment:Chapter 1 Code Exercises (Real)", 100, 100, 100, 100, 100, 100, 100, 100],
["Assignment:Chapter 2 Code Exercises (Real)", 93, 75, 100, 100, 100, 55, 75, 100],
["Assignment:Chapter 3 Code Exercises (Real)", 100, 80, 100, 100, 90, 85, 65, 100],
["Assignment:Chapter 4 Code Exercises (Real)", 100, 90, 100, 100, 95, 100, 75, 70],
["Assignment:Chapter 5 Code Exercises (Real)", 50, 100, 100, 100, 60, 70, 90, 100],
["Assignment:Chapter 6 Code Exercises (Real)", 0, 85, 100, 100, 60, 85, 70, 85], 100],
["Assignment:Chapter 14 Code Exercises (Real)", 75, 90, 100, 100, 0, 100, 0, 100],
["Assignment:Chapter 15 Code Exercises (Real)", 97, 100, 100, 100, 0, 100, 0, 100]
]
flatten so too "flat". I also tried flatten(1).
CodePudding user response:
array.each_slice(2).map { |(x,y)| [x] y }
#=> [["Assignment:Chapter 1 Code Exercises (Real)", 100, 100, 100, 100, 100, 100, 100, 100],
["Assignment:Chapter 2 Code Exercises (Real)", 93, 75, 100, 100, 100, 55, 75, 100],
["Assignment:Chapter 3 Code Exercises (Real)", 100, 80, 100, 100, 90, 85, 65, 100],
["Assignment:Chapter 4 Code Exercises (Real)", 100, 90, 100, 100, 95, 100, 75, 70],
["Assignment:Chapter 5 Code Exercises (Real)", 50, 100, 100, 100, 60, 70, 90, 100],
["Assignment:Chapter 6 Code Exercises (Real)", 0, 85, 100, 100, 60, 85, 70, 85, 100],
["Assignment:Chapter 14 Code Exercises (Real)", 75, 90, 100, 100, 0, 100, 0, 100],
["Assignment:Chapter 15 Code Exercises (Real)", 97, 100, 100, 100, 0, 100, 0, 100]]
CodePudding user response:
> Hash[*a].map(&:flatten)
=>
[["Assignment:Chapter 1 Code Exercises (Real)", 100, 100, 100, 100, 100, 100, 100, 100],
["Assignment:Chapter 2 Code Exercises (Real)", 93, 75, 100, 100, 100, 55, 75, 100],
["Assignment:Chapter 3 Code Exercises (Real)", 100, 80, 100, 100, 90, 85, 65, 100],
["Assignment:Chapter 4 Code Exercises (Real)", 100, 90, 100, 100, 95, 100, 75, 70],
["Assignment:Chapter 5 Code Exercises (Real)", 50, 100, 100, 100, 60, 70, 90, 100],
["Assignment:Chapter 6 Code Exercises (Real)", 0, 85, 100, 100, 60, 85, 70, 85, 100],
["Assignment:Chapter 14 Code Exercises (Real)", 75, 90, 100, 100, 0, 100, 0, 100],
["Assignment:Chapter 15 Code Exercises (Real)", 97, 100, 100, 100, 0, 100, 0, 100]]
where a is the first array above.
