2 回答
TA贡献1852条经验 获得超1个赞
您可以从timeline对象数组创建城镇名称数组,以便可以比较在时间轴中是否找到特定的城镇。
这可以通过以下方式完成:
使用Array.prototype.map()通过你的迭代timeline对象的数组,并返回所有的列表townshipname
通过使用以下命令检查阵列中是否存在给定的乡镇 Array.prototype.indexOf()
示例代码如下:
// Generate an array of townships extract from timeline
var townships = timeline.map(function(item) {
return item.townshipname;
});
// Attempt to search a given township in your generated array
var townshipIndex = townships.indexOf(event.feature.getProperty('township'));
if (townshipIndex !== -1) {
var timepush = timeline[townshipIndex].timelinename;
} else {
var timepush = 'No Timeline Entered';
}
另外,您可以使用for...of循环并在找到匹配项后中断循环。我们假设没有输入任何时间轴作为“基本状态”,然后我们可以在找到匹配项后进行更新:
var timepush = 'No Timeline Entered';
for (var item of timeline) {
if (item.townshipname === event.feature.getProperty('township')) {
timepush = item.timelinename;
break;
}
}
如果您确实需要IE支持,那么我们可以使用经典for循环:
var timepush = 'No Timeline Entered';
for (var i = 0; i < timeline.length; i++) {
if (timeline[i].townshipname === event.feature.getProperty('township')) {
timepush = timeline[i].timelinename;
break;
}
}
TA贡献1818条经验 获得超7个赞
因此,有两种不同的方法可以实现此目的,如果您有一个索引对象数组,最快的方法是:
for(var i = 0; i < timeline.length; i++){
if(event.feature.getProperty('township') == timeline[i].townshipname){
var timepush = timeline[i].timelinename;
}
}
我可以很快提出另一个例子。
添加回答
举报