Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在ruby中对两个数组进行排序或映射_Ruby On Rails_Ruby_Arrays - Fatal编程技术网

Ruby on rails 在ruby中对两个数组进行排序或映射

Ruby on rails 在ruby中对两个数组进行排序或映射,ruby-on-rails,ruby,arrays,Ruby On Rails,Ruby,Arrays,我有一个节数组[‘第一部分’,‘第二部分’]和一个项目对象数组[item1,item2,item3] 每个item对象都有一个section属性(本例中的值为'part one'或'part two')和一个order属性,该属性是一个整数 我想创建一个数组,如 [ ['part one',[item1,item3]],['part two',[item3]] ] 或 在哪里 item1.section == 'part one' and item1.order == 1, item3.se

我有一个节数组
[‘第一部分’,‘第二部分’]
和一个项目对象数组
[item1,item2,item3]

每个item对象都有一个section属性(本例中的值为'part one'或'part two')和一个order属性,该属性是一个整数

我想创建一个数组,如

[ ['part one',[item1,item3]],['part two',[item3]] ]

在哪里

item1.section == 'part one' and item1.order == 1, 
item3.section == 'part one' and item3.order == 2, 
item2.section == 'part two' and item2.order == 1

要按
部分进行分组,并按
顺序进行排序,您可以执行以下操作:

items.sort_by(&:order).group_by(&:section).to_a
# => [["part one", [item1, item3]], ["part two", [item2]]]
根据
order
属性对所有项目进行排序,同时将它们分组到数组的散列中,每个键都是不同的
部分
to_a
将哈希值转换为数组


如果您想保持
部分
列表的顺序,可以使用它来定义顺序,而不是
到a

grouped = items.sort_by(&:order).group_by(&:section)
# => { "part one" => [item1, item3], "part two" => [item2] }
sorted = sections.zip(sections.map { |s| grouped[s] })
# => [["part one", [item1, item3]], ["part two", [item2]]]

要按
部分进行分组,并按
顺序进行排序,您可以执行以下操作:

items.sort_by(&:order).group_by(&:section).to_a
# => [["part one", [item1, item3]], ["part two", [item2]]]
根据
order
属性对所有项目进行排序,同时将它们分组到数组的散列中,每个键都是不同的
部分
to_a
将哈希值转换为数组


如果您想保持
部分
列表的顺序,可以使用它来定义顺序,而不是
到a

grouped = items.sort_by(&:order).group_by(&:section)
# => { "part one" => [item1, item3], "part two" => [item2] }
sorted = sections.zip(sections.map { |s| grouped[s] })
# => [["part one", [item1, item3]], ["part two", [item2]]]

要按
部分进行分组,并按
顺序进行排序,您可以执行以下操作:

items.sort_by(&:order).group_by(&:section).to_a
# => [["part one", [item1, item3]], ["part two", [item2]]]
根据
order
属性对所有项目进行排序,同时将它们分组到数组的散列中,每个键都是不同的
部分
to_a
将哈希值转换为数组


如果您想保持
部分
列表的顺序,可以使用它来定义顺序,而不是
到a

grouped = items.sort_by(&:order).group_by(&:section)
# => { "part one" => [item1, item3], "part two" => [item2] }
sorted = sections.zip(sections.map { |s| grouped[s] })
# => [["part one", [item1, item3]], ["part two", [item2]]]

要按
部分进行分组,并按
顺序进行排序,您可以执行以下操作:

items.sort_by(&:order).group_by(&:section).to_a
# => [["part one", [item1, item3]], ["part two", [item2]]]
根据
order
属性对所有项目进行排序,同时将它们分组到数组的散列中,每个键都是不同的
部分
to_a
将哈希值转换为数组


如果您想保持
部分
列表的顺序,可以使用它来定义顺序,而不是
到a

grouped = items.sort_by(&:order).group_by(&:section)
# => { "part one" => [item1, item3], "part two" => [item2] }
sorted = sections.zip(sections.map { |s| grouped[s] })
# => [["part one", [item1, item3]], ["part two", [item2]]]


您想按
项目对项目进行分组。部分
,按
项目对每组进行排序。顺序
?@Stefan yes这是correct@xlembouras没有什么工作不应该是
[“第二部分”,[item3]]
[“第二部分”,[item2]]
?您想按
项目对项目进行分组,按
项目对每组进行排序。顺序
?@Stefan是correct@xlembouras没有什么工作不应该是
[“第二部分”,[item3]]
[“第二部分”,[item2]]
?您想按
项目对项目进行分组,按
项目对每组进行排序。顺序
?@Stefan是correct@xlembouras没有什么工作不应该是
[“第二部分”,[item3]]
[“第二部分”,[item2]]
?您想按
项目对项目进行分组,按
项目对每组进行排序。顺序
?@Stefan是correct@xlembouras没有任何东西不应该是
['part two',[item 3]]
['part two',[item 2]]
?答案正确,但需要节数组,因为它包含正确的顺序正确答案,但需要节数组,因为它包含正确的顺序正确答案,但需要节数组,因为它包含正确的顺序正确答案,但需要节数组,因为它包含正确的顺序