1

さまざまなプロパティを持つオブジェクトの配列があり、特定のプロパティが重複しないように配列をフィルター処理する必要があります。

例えば:

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"}];

ここで、プロパティでオブジェクトをフィルタリングしたいとしますbazbaz操作後に2 つの要素が同じ値を持たないように、配列をフィルタリングする最も効率的な方法は何ですか?

私の例では、結果には次のもののみが含まれている必要があります。

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 やその他の構成設定など) を保持します。

この例で使用したプロパティは、実際にはチャット ルームが使用するように構成されている言語の ID であり、個々の言語をフィルター処理できるbazを作成したいと考えています(たとえば、「ドイツ語」を使用するすべてのルームを表示します)。s:DropDownListDatagrid

同じ言語 ID を持つ多くのオブジェクトが存在する可能性が非常に高いですが、各言語 ID がDropDownList.

データプロバイダー (ソース配列)からその情報を抽出する必要がありますが、言語はさまざまなデータでさまざまに使用されるジェネリックの一部であるDatagrids'sため、言語を直接取得することはできません。DropDownListDatagridHeaderRendererDatagrids

4

2 に答える 2