私はJavascriptを使用して作成したオブジェクトの配列を持っています。オブジェクトは地図レイヤーで、さまざまなプロパティが関連付けられています。作成時に、それらは配列にプッシュされます。以下は、私が何をしたいのか簡単な例オブジェクトプロパティの配列を検索し、見つかったオブジェクトの最初の出現を非表示にする
var activeLayers = [];
var mapLayer1 = new mapLayer();
mapLayer1.name = 'roads';
mapLayer1.class = 'infrastucture';
mapLayer1.type = 'line';
activeLayers.push(mapLayer1);
var mapLayer2 = new mapLayer();
mapLayer2.name = 'cities';
mapLayer2.class = 'infrastucture';
mapLayer2.type = 'point';
activeLayers.push(mapLayer2);
var mapLayer3 = new mapLayer();
mapLayer3.name = 'counties';
mapLayer3.class = 'boundaries';
mapLayer3.type = 'polygon';
activeLayers.push(mapLayer3);
var mapLayer4 = new mapLayer();
mapLayer4.name = 'zoningDistricts';
mapLayer4.class = 'political';
mapLayer4.type = 'polygon';
activeLayers.push(mapLayer4);
であることはタイプの複数の層==同時に表示されるポリゴンを許可しないように、私のマップを強制しています。私は配列 'activeLayers'を繰り返し、type == polygon.length> 1ならマップから最も古いものを削除したいと思います。地図から層を除去するポリゴンは、上記アレイmapLayer3で
mapLayer3.hide();
の関数とで達成され、mapLayer4前に添加し、マップから隠されるであろう。
ありがとうございます。
これはOPの例で機能しますが、配列に3番目のポリゴンがある場合はどうなりますか?彼は "マップに同時に複数のタイプのレイヤー==ポリゴンを表示させないようにマップを強制したい"としていますが、2番目のポリゴンが見つかった(そして隠されている)ときに常にループを終了します。 – bfavaretto
OPの説明地図から最も古いものを削除したいと思います。私はすべての地図を削除する必要があるとは言いません。 – ShankarSangoli
私はもう一度質問を読んだが、あなたはそれについて正しい。私の答えは間違っていた。しかし、ループが壊れているかどうかはわかりません。 – bfavaretto