Ваш код должен работать нормально.
Заметьте, однако, что в написании var edge = element
.
нет смысла (кроме ясности, что хорошо).
Переменные Javascript не типизированы; нет никакой разницы между edge
и element
.
Кроме того, вам, вероятно, следует выдать исключение вместо
// shouldn't come here
return false;
Наконец, почему вы ищете self.verticies
для Edge
?
Кстати, обратите внимание, что у вас все еще есть повторяющийся код.
Вы можете переписать свою функцию так:
function contains(element) {
var searchSet;
// if the element is a Vertex object, do this
if (element instanceof Vertex)
searchSet = self.verticies;
else if (element instanceof Edge)
searchSet = self.edges;
else
throw Error("Unexpected argument");
for (var i = 0; i < searchSet.length; i++) {
if (searchSet[i].id == element.id)
return true;
}
return false;
}