Можете ли вы попробовать следующий код?
let L = this.getters.hostelBookmarks.length;
for (var I = L-1; I >= 0; I--) {
if (relatedHostel.id == this.getters.hostelBookmarks[I].hostel_id) {
this.getters.hostelBookmarks.splice(I, 1);
context.commit('refreshHostelBookmarks', this.getters.hostelBookmarks);
break;
}
}
демонстрационный код для ++, -: Если у вас есть массив [1, 2, 3, 4, 5].И вы хотите удалить 2-й и 4-й элемент, 2 и 4.
Первый ++:
const origin = [1,2,3,4,5];
for(var i = 0; i < origin.length; i++){
if(i === 1 || i === 3) {
origin.splice(i, 1);
}
}
console.log(origin); // [1, 3, 4]
Как видите, результат не тот, который вы ожидали.Если вы зарегистрируете каждый элемент в цикле, вы увидите, что индекс элемента был изменен после удаления элемента 2 .Когда я в цикле равен 3, фактически пятый элемент будет удален.
Тогда давайте посмотрим -:
const origin = [1,2,3,4,5];
for(var i = origin.length; i >= 0; i--){
if(i === 3 || i === 1) {
origin.splice(i, 1);
}
}
console.log(origin); // [1, 3, 5]
Это то, что вы хотите.Когда - мы удалим элемент с последнего на первый.Индекс элемента не изменяется.