Мои данные:
data() {
return {
currentStore: this.store,
brands: [],
}
},
Мой v-select
<v-select
v-model="currentStore.brands.data"
:options="allBrands"
:taggable="true"
:multiple="true"
/>
У меня есть наблюдатель на объекте, который выглядит так (this.newVal):
brands:Object
data:Array[1]
0:Object
name:"3T"
data:Array[1]
0:Object
name:"abc"
Я хочу сравнить этот объект с этим (this.allBrands)
allBrands:Array[254]
0:Object
name:"3T"
1:Object
name:"Achielle"
Как видите, я хочу, чтобы имя «ab c» не было во втором объекте, который я хочу чтобы удалить его из наблюдателя, вот что у меня:
Object.keys(newVal).forEach(function(key) {
console.log(Object.values(this.allBrands).includes(newVal[key].name));
});
watch: {
"store.brands.data": function (newVal, oldVal) {
console.log(this.allBrands);
console.log(newVal);
Object.keys(newVal).forEach(function(key) {
console.log(Object.values(this.allBrands).includes(newVal[key].name));
});
}
},
Я получаю следующую ошибку:
«TypeError: невозможно прочитать свойство allBrands из undefined»
Моя цель состоит в том, чтобы иметь в моем store.brands.data
только:
brands:Object
data:Array[1]
0:Object
name:"3T"
, так как это единственный, который есть в this.allBrands
EDIT
Object.keys(newVal).forEach((key) => {
if (!Object.values(this.allBrands).includes(newVal[key].name)) {
newVal.pop();
}
});
Это вызывает следующую ошибку, которую я не понимаю:
Ошибка обратного вызова для наблюдателя «store.brands.data»: «TypeError: не удается прочитать свойство 'name' из undefined "