gpt4 book ai didi

javascript - 在数组中搜索对象属性,然后隐藏第一次出现的找到的对象

转载 作者:行者123 更新时间:2023-12-02 19:47:32 25 4
gpt4 key购买 nike

我有一个使用 Javascript 创建的对象数组。这些对象是 map 图层并具有各种关联的属性。创建后,它们被插入数组中。下面是一个简化的示例

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);

我想要做的是强制我的 map 不允许同时显示超过一层 type==polygon 。我想迭代数组“activeLayers”,如果 type==polygon.length > 1 那么我想从 map 中删除最旧的。从 map 上删除图层是通过以下函数完成的:

mapLayer3.hide();

在上面的数组中,mapLayer3 是一个多边形,在 mapLayer4 之前添加,并且会在 map 中隐藏。

感谢您的浏览。

最佳答案

试试这个。

var prevPoly = null;
for(var i = 0;i < activeLayers.length;i++){
if(activeLayers[i].type == 'polygon'){
if(prevPoly){
prevPoly.hide();
break;
}
else{
prevPoly = activeLayers[i];
}
}
}

}

关于javascript - 在数组中搜索对象属性,然后隐藏第一次出现的找到的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9709663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com