У меня есть массив объектов, например:
myArray: [{
name: "First",
price: 10,
rebate: 5,
listPrice: 15,
outcome: 0
},{
name: "Second",
price: 11,
rebate: 5,
listPrice: 16,
outcome: 0
}
Я хочу пересчитать значение outcome
всякий раз, когда изменяется любое из других значений в этом же объекте.
У меня уже есть такая установка, но она ищет изменения в любом объекте, а затем пересчитывает весь массив.Мне удалось настроить это с помощью комбинации функций computed
и watch
.Однако они следят за изменениями во всем массиве, а затем пересчитывают значение результата для всех объектов в массиве.
Как я могу отслеживать изменения и затем пересчитывать только измененный объект ?
Ниже приведены мои текущие функции для пересчета всего массива (просмотра другого свойства), но то, что я ищу, может быть совершенно другим.
вычислено:
myArrayWasChanged() {
return [this.myArray.reduce((a, {vendors}) => a + vendors, 0), this.myArray.filter(item => item.discounted == false).length]
часы:
myArrayWasChanged: {
handler: function (val, oldVal) {
this.recalculateIsVendor();