誰でもこれで私を助けてくれませんか。ワインをリストするインデックス付き配列があり、各ワインには名前、製造元、原産国、価格、および年があるとします。
var wines:Array = new Array();
wines = [
{winename:"Baron des Lougres", country:"France", year:"2008", price:"20.00", manufacture:"Le Yeats"},
{winename:"Barefoot Sauvignon", country:"USA", year:"2012", price:"12.00", manufacture:"Big Vines"},
]
明らかに、インデックス付き配列/データベースにはより多くのワインがあります。
ユーザーが製造年などをファイリングしてから、いくつかの国 (チリ、アルゼンチン、米国) を選択できるようにしたいと考えています。選択した国の配列でワイン配列をフィルタリングする必要があります。if フィルタリングで && を使用して設定値でメイン配列をソートする方法は知っていますが、動的な値で使用する方法はわかりません。国の並べ替えには 1 ~ 10 個以上の値を含めることができ、その長さは動的になります。配列/データベースに2000以上のワインを入れたいので、できるだけきちんとしたコードのCPU liteが欲しいです。
返される値は、選択された国のみからのものです。条件として配列を使用して IF ステートメントを作成することは可能ですか、それとも別の方法で行う必要がありますか?
何かのようなもの:
for (var i:uint = 0; i < wines.length; i++)
if (wines.year == selected_year
&& wines.manufacture == selected_manufacture
&& wines[i].country == selected_countries_array)
{
trace(wines[i].name);
}
}
アップデート
bwroga からの以下の回答が機能しました。上記のコードとは少し異なって見えますが、それは彼が回答した後にこの質問を編集したためです。しかし、彼のコード、indexOf の部分は完璧に機能します。ブローガありがとう。以下を試したところ、うまくいきました!:)
for (var i:uint = 0; i < wines.length; i++)
if (wines.year == selected_year
&& wines.manufacture == selected_manufacture
&& selected_countries_array.indexOf(wines[i].country != -1)
{
trace(wines[i].name);
}
}