updated random location function to use a set instead of an array

This commit is contained in:
Jenny Danzmayr 2019-12-25 21:07:55 +01:00
parent 275a292728
commit 7dd1703dc1

View file

@ -1167,17 +1167,13 @@ c3nav = {
left: 5, left: 5,
}, 300, 'swing').queue(function(d) { }, 300, 'swing').queue(function(d) {
d(); d();
var possible_locations = []; var possible_locations = new Set();
for (var id of c3nav.random_location_groups) { for (var id of c3nav.random_location_groups) {
var group = c3nav.locations_by_id[id]; var group = c3nav.locations_by_id[id];
if (!group) continue; if (!group) continue;
// todo set und so group.locations.forEach(subid => {if (subid in c3nav.locations_by_id) possible_locations.add(subid)});
for (var subid of group.locations) {
if (!(subid in possible_locations) && subid in c3nav.locations_by_id) {
possible_locations.push(subid);
}
}
} }
possible_locations = Array.from(possible_locations);
var location = c3nav.locations_by_id[possible_locations[Math.floor(Math.random()*possible_locations.length)]]; var location = c3nav.locations_by_id[possible_locations[Math.floor(Math.random()*possible_locations.length)]];
c3nav._locationinput_set($('#destination-input'), location); c3nav._locationinput_set($('#destination-input'), location);
c3nav.update_state(false); c3nav.update_state(false);