Я использую следующий код, чтобы получить список объектов из firebase. Мне нужно удалить элемент из списка, но я продолжаю получать -1 для индекса. Что я тут не так делаю?
filterItineraries(filters: any): any {
let num = 0;
this.allItineraries = [];
this.filteredItineraries = [];
for (let i = 0; i < 2; i++) {
if (i === 0) {
num = 0;
} else {
num = (filters.numberOfDays - 1);
}
const query = this.dataSvc.getAllItineraries()
.where('destination', '==', filters.destination)
.where('dateRange', 'array-contains', filters.dateRange[num]);
query.get()
.then(itineraryListSnapshot => {
this.allItineraries = [];
itineraryListSnapshot.forEach(snap => {
this.allItineraries.push({
id: snap.id,
jobCode: snap.data().jobCode,
destination: snap.data().destination,
startDate: snap.data().startDate,
endDate: snap.data().endDate,
workDetails: snap.data().workDetails,
userId: snap.data().userId
});
const index: number = this.allItineraries.indexOf(filters.id);
if (index !== -1) {
this.allItineraries.splice(index, 1);
}
console.log('index', index);
console.log('filters.id', filters.id);
console.log('filteredItineraries', this.allItineraries);
});
});
}
}
console.log

Я также пытался переместить его за пределы цикла for, но индекс = -1.
И, наконец, я попробовал:
this.filteredItineraries = this.allItineraries;
const index: number = this.filteredItineraries.indexOf(filters.id);
if (index !== -1) {
this.filteredItineraries.splice(index, 1);
}
console.log('index', index);
console.log('filters.id', filters.id);
console.log('filteredItineraries', this.filteredItineraries);
индекс всегда = -1