optimization of search

This commit is contained in:
zadam 2020-08-28 23:20:22 +02:00
parent 5a8c3f6a2b
commit 172f3689fa
2 changed files with 10 additions and 2 deletions

View file

@ -152,6 +152,12 @@ function getSomePath(note, path = []) {
function getNotePath(noteId) {
const note = noteCache.notes[noteId];
if (!note) {
console.trace(`Cannot find note ${noteId} in cache.`);
return;
}
const retPath = getSomePath(note);
if (retPath) {

View file

@ -4,6 +4,7 @@ class NoteSet {
constructor(notes = []) {
/** @type {Note[]} */
this.notes = notes;
this.noteIdSet = new Set(notes.map(note => note.noteId));
/** @type {boolean} */
this.sorted = false;
}
@ -11,6 +12,7 @@ class NoteSet {
add(note) {
if (!this.hasNote(note)) {
this.notes.push(note);
this.noteIdSet.add(note.noteId);
}
}
@ -25,12 +27,12 @@ class NoteSet {
}
hasNoteId(noteId) {
// TODO: optimize
return !!this.notes.find(note => note.noteId === noteId);
return this.noteIdSet.has(noteId);
}
mergeIn(anotherNoteSet) {
this.notes = this.notes.concat(anotherNoteSet.notes);
this.noteIdSet = new Set(this.notes.map(note => note.noteId));
}
minus(anotherNoteSet) {