我有一组具有不同属性的对象,我需要以不重复特定属性的方式过滤数组。
例如:
var array:Array = [{foo:"a1", bar:"b1", baz:"c1"},
{foo:"a2", bar:"b2", baz:"c2"},
{foo:"a3", bar:"b1", baz:"c3"},
{foo:"a1", bar:"b4", baz:"c2"},
{foo:"a0", bar:"b3", baz:"c1"}];
现在假设我想过滤属性上的对象baz
。过滤数组的最有效方法是什么,以便baz
在操作后没有两个元素具有相同的值?
在我的示例中,结果应仅包含:
var result:Array = [{foo:"a1", bar:"b1", baz:"c1"},
{foo:"a2", bar:"b2", baz:"c2"},
{foo:"a3", bar:"b1", baz:"c3"}]
因为其他对象将具有该baz
属性的重复条目。
结果数组的顺序并不重要,具有相同值的对象中的哪个对象进入结果数组也不重要baz
。
更新:
对象数组用作数据提供者来填充s:Datagrid
有关聊天室的信息。数组中的对象携带相关信息(如服务器上的房间 ID 和其他一些配置设置)。
baz
我在示例中使用的属性实际上是聊天室配置为使用的语言的 ID,我想创建一个s:DropDownList
用于过滤Datagrid
各个语言的 ID(例如,显示所有使用“德语”的房间)。
很可能有许多具有相同语言 ID 的对象,但我只希望每个语言 ID 在DropDownList
.
我需要从数据提供者(源数组)中提取该信息,Datagrids's
并且无法直接检索我的语言,因为它是用于许多不同数据DropDownList
的泛型的一部分。DatagridHeaderRenderer
Datagrids