Can we rename `i` to `nodeID`?  I think of `i` being an integer counter.
Then we might even find that above, it's not necessary to do:

    self.nodes[i].id != navObject.ID

I believe it could reduce to:

    nodeID != navObject.ID