【发布时间】:2012-02-24 20:45:40
【问题描述】:
根据原始数组中对象的属性,将一个大数组变为多个子数组的最佳方法是什么?例如我有一个对象数组(所有对象都具有相同的属性):
array = [
{:name => "Jim", :amount => "20"},
{:name => "Jim", :amount => "40"},
{:name => "Jim", :amount => "30"},
{:name => "Eddie", :amount => "7"},
{:name => "Eddie", :amount => "12"},
{:name => "Pony", :amount => "330"},
{:name => "Pony", :amount => "220"},
{:name => "Pony", :amount => "50"}
]
请注意,所有具有相同 name 属性的对象在数组中都是连续的。现在我想根据 name 属性将对象分组到子数组中。我需要的是:
result = [
[
{:name => "Jim", :amount => "20"},
{:name => "Jim", :amount => "40"},
{:name => "Jim", :amount => "30"}
],
[
{:name => "Eddie", :amount => "7"},
{:name => "Eddie", :amount => "12"}
],
[
{:name => "Pony", :amount => "330"},
{:name => "Pony", :amount => "220"},
{:name => "Pony", :amount => "50"}
]
]
最好的方法是什么? 谢谢。
【问题讨论】: